Vue前端体系、前后端分离
Vue:前端体系、前后端分离
为了降低开发的复杂难度,以后端为出发点,比如:Struts、SpringMVC等框架的使用,就是后端的MVC时代。以SpringMVC流程图:
(1)、发起请求到前端控制器(DispatcherServlet) (2)、前端控制器请求HandlerMapping查找Handler,可以根据xml配置、注解进行查找 (3)、处理器映射器HandlerMapping向前端控制器返回Handler (4)、前端控制器调用处理器适配器去执行Handler (5)、处理适配器去执行Handler (6)、Handler执行完成给适配器返回ModelAndView (7)、处理适配器向前端控制器返回ModelAndView。ModelAndView是SpringMVC框架的一个底层对象,包括Model和View (8)、前端控制器请求视图解析器去进行视图解析,根据逻辑视图名解析成真正的视图(JSP) (9)、视图解析器向前端控制器返回View (10)、前端控制器进行视图渲染,视图渲染将模型数据(在ModelAndView对象中)填充到request域 (11)、前端控制器向用户响应结果 SpringMVC的优点:MVC是一个非常好的协作模式,能够有效降低代码的耦合度,为了让View更纯粹,还可以使用Thymeleaf、Freemarker等模板引擎,使模板里无法写入Java代码,让前后端分工更加清晰 缺点:①、前端开发重度依赖开发环境,开发效率低 ②、前后端职责纠缠不清:模板引擎功能强大 ③、对前端发挥的局限性:性能优化如果只在前端做空间非常有限 基于AJAX带来的SPA时代 优点:前后端的分工非常清晰,前后端的关键协作点是AJAX接口 缺点:①、前后端接口的约定:有了和后端一起沉淀的接口规则,还可以用来模拟数据,使得前后端可以在约定接口后实现高效并行开发 ②、前端开发的复杂度控制:SPA应用大多功能交互型为主。 前端为主的MV时代 前后端分离
优点:①、前后端职责很清晰:前端工作在浏览端,后端工作在服务端。前端可以在本地开发,后端则可以专注与业务逻辑的处理,输出RESTful等接口。②、前端开发的复杂度可控:前端代码很重 ③、部署相对独立:可以快速改进产品体验 缺点:①、代码不能复用 ②、全异步,对SEO不利。往往还需要服务端做同步渲染的降级方案 【SEO是指搜索引擎优化】 ③、性能并非最佳,特别是移动互联网环境下 ④、SPA不能满足所有需求,依旧存在大量多页面应用
