JAVA模板语言freemark,thymleaf和前端三大框架开发有什么区别?


本质上没有什么区别 。都是模板+模型=>渲染结果 。
区别主要是:渲染前移
渲染前移
下图是SpringMVC前端控制器的执行流程 。

JAVA模板语言freemark,thymleaf和前端三大框架开发有什么区别?

文章插图
前端控制器接收到请求
委托为对应Controller处理
Controller处理完成 。返回model
前端控制器将model和模板渲染出结果(html,json等)
最后返回给客户端
freemark,thymleaf就是在第4步渲染出结果后返回 。
而对于Angular、React和Vue 。第四步退化成了数据转换 。model转JSON 。渲染则是在第5步之后 。客户端接收到了数据之后 。
以Vue为例:
JAVA模板语言freemark,thymleaf和前端三大框架开发有什么区别?

文章插图
主要看mounted右侧的那个虚线环:接收到数据后 。触发beforeUpdate,reRender,updated进行页面的渲染 。
前移优劣势
优势:
职责分离 。后端只负责数据和逻辑 。前端负责渲染和交互 。分工明确
后端不必为了web 。独立处理 。对web,app,小程序一视同仁 。减少了后端工作量
相对于后端渲染 。前端渲染更易于测试 。可独立mock测试
【JAVA模板语言freemark,thymleaf和前端三大框架开发有什么区别?】前端身价涨了~
劣势:
前端发展快 。但是没有统一标准
模块化不成熟
很多借鉴的后端的技术 。对前端人员来说 。学习的内容一下增加了很多 。学习难度大
好的前端难招了~
其他观点:
Java中的模板语言:FreeMarker和Thymeleaf 。
前端三大框架:Angular、React和Vue 。
模板语言是服务端从数据库取出数据 。直接绑定数据到页面 。生成最终的页面返回最前端(浏览器)直接查看 。模板语言因为是服务端渲染更有利于SEO 。一般模板语言最后都需要后端工程师最后整合 。
三大框架的使用就是前后端分离的象征 。服务端只关心业务逻辑 。返回正确的数据 。前端只关心数据的绑定和页面的显示及跳转是否正确 。分工更为明确 。前后端工程师各司其职 。
现在越来越倾向于前后端分离的开发模式 。后端专注高并发高可用 。前端专注用户体验 。
JAVA模板语言freemark,thymleaf和前端三大框架开发有什么区别?

文章插图
JAVA模板语言freemark,thymleaf和前端三大框架开发有什么区别?

文章插图
其他观点:
主流的Java模板引擎
Thymeleaf
Thymeleaf是用于Web和独立环境的现代服务器端Java模板引擎 。Thymeleaf的主要目标是将优雅的自然模板带到您的开发工作流程中—HTML能够在浏览器中正确显示 。并且可以作为静态原型 。从而在开发团队中实现更强大的协作 。能够处理HTML 。XML 。JavaScript 。CSS甚至纯文本 。Thymeleaf的主要目标是提供一个优雅和高度可维护的创建模板的方式 。Thymeleaf也是从一开始就设计(特别是HTML5)允许创建完全验证的模板 。Spring Boot 官方推荐使用thymeleaf 而不是 JSP 。
JAVA模板语言freemark,thymleaf和前端三大框架开发有什么区别?

文章插图
Freemarker
FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据 。并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具 。它不是面向最终用户的 。而是一个Java类库 。轻量级模版引擎 。不需要Servlet环境就可以很轻松的嵌入到应用程序中 。能生成各种文本 。如html 。xml 。java 。等 。入门简单 。它是用java编写的 。很多语法和java相似 。
JAVA模板语言freemark,thymleaf和前端三大框架开发有什么区别?

文章插图
前端三大框架
Vue
Vue.js是一套构建用户界面的渐进式框架 。Vue 只关注视图层 。采用自底向上增量开发的设计 。目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件 。
JAVA模板语言freemark,thymleaf和前端三大框架开发有什么区别?

文章插图
React
React 是一个用于构建用户界面的 JAVASCRIPT 库 。React主要用于构建UI 。很多人认为 React 是 MVC 中的 V(视图) 。
JAVA模板语言freemark,thymleaf和前端三大框架开发有什么区别?

文章插图
Angular
AngularJS 是一个 JavaScript框架 。它是一个以 JavaScript 编写的库 。它可通过 <script> 标签添加到HTML 页面 。通过 指令 扩展了 HTML 。且通过 表达式 绑定数据到 HTML 。AngularJS 是以一个 JavaScript 文件形式发布的 。可通过 script 标签添加到网页中 。
JAVA模板语言freemark,thymleaf和前端三大框架开发有什么区别?

文章插图

推荐阅读