前端与后端的模板引擎

article/2025/11/9 16:29:06

模板引擎

模板引擎 起到 数据和视图分离的作用, 模板对应视图, 关注如何展示数据, 在模板外头准备的数据, 关注那些数据可以被展示。

 

后端模板引擎

freemarker

如下介绍,  java后台的模板引擎, freemark介绍,其图能很好标明这种关系。

http://freemarker.org/

Apache FreeMarker is a template engine: a Java library to generate text output (HTML web pages, e-mails, configuration files, source code, etc.) based on templates and changing data. Templates are written in the FreeMarker Template Language (FTL), which is a simple, specialized language (not a full-blown programming language like PHP). You meant to prepare the data to display in a real programming language, like issue database queries and do business calculations, and then the template displays that already prepared data. In the template you are focusing on how to present the data, and outside the template you are focusing on what data to present.

 

velocity

另外一个 java模板引擎, velocity:

http://velocity.apache.org/

velocity是一个基于java的模板引擎, 它允许任何人使用简单但是强大的 模板语言, 引用 java代码中的对象。

Velocity is a Java-based template engine. It permits anyone to use a simple yet powerful template language to reference objects defined in Java code.

 

按照MVC的思想分离任务, web页面开发者关注如何将页面做的好看, 业务开发者关注写首要的逻辑代码。

其对 JSP代码是一种取代。

When Velocity is used for web development, Web designers can work in parallel with Java programmers to develop web sites according to the Model-View-Controller (MVC) model, meaning that web page designers can focus solely on creating a site that looks good, and programmers can focus solely on writing top-notch code. Velocity separates Java code from the web pages, making the web site more maintainable over its lifespan and providing a viable alternative to Java Server Pages (JSPs) or PHP.

 

不仅仅可以做HTML模板, 也可以做XML和sql其它重复性代码生成工具。

Velocity’s capabilities reach well beyond the realm of the web; for example, it can be used to generate SQL, PostScript and XML from templates.

 

前端模板引擎

随着前端技术发展, 和前端处理能力增强, 越来越多的 渲染逻辑在浏览器端实现, 由此出现前端模板引擎, 仿照后台模板引擎方法, 定义前端模板语言, 实现前端模板引擎。

 

arttemplate

https://github.com/aui/artTemplate

新一代 javascript 模板引擎

编写模板

使用一个type="text/html"script标签存放模板:

  1. <script id=“test” type=“text/html”>
  2. <h1>{{title}}</h1>
  3. <ul>
  4. {{each list as value i}}
  5. <li>索引 {{i + 1}} :{{value}}</li>
  6. {{/each}}
  7. </ul>
  8. </script>
渲染模板
  1. var data = {
  2. title: '标签',
  3. list: ['文艺', '博客', '摄影', '电影', '民谣', '旅行', '吉他']
  4. };
  5. var html = template('test', data);
  6. document.getElementById('content').innerHTML = html;

演示

示例:  http://aui.github.io/artTemplate/demo/basic.html

 

arttemplate 性能介绍

http://cdc.tencent.com/2012/06/15/%e9%ab%98%e6%80%a7%e8%83%bdjavascript%e6%a8%a1%e6%9d%bf%e5%bc%95%e6%93%8e%e5%8e%9f%e7%90%86%e8%a7%a3%e6%9e%90/

artTemplate 介绍

artTemplate 是新一代 javascript 模板引擎,它采用预编译方式让性能有了质的飞跃,并且充分利用 javascript 引擎特性,使得其性能无论在前端还是后端都有极其出色的表现。在 chrome 下渲染效率测试中分别是知名引擎 Mustache 与 micro tmpl 的 25 、 32 倍。

 

art-template结合tomjs编译工具效果更佳

https://github.com/aui/tmodjs/

如果在页面中维护很多 <script>模板端段, 则会很庞大, 且解析效率不佳:

此工具允许各个模板独自文件管理, 然后精怪此工具合并压缩, 成为一个可引用的模板文件:

使用默认的格式

TmodJS 默认将整个目录的模板压缩打包到一个名为 template.js 的脚本中,可直接在页面中使用它:

  1. <script src="tpl/build/template.js"></script>
  2. <script>
  3. var html = template('news/list', _list);
  4. document.getElementById('list').innerHTML = html;
  5. </script>

template.js 还支持 RequireJS、SeaJS、NodeJS 加载。示例

 

指定格式(amd / cmd / commonjs)

此时每个模板就是一个单独的模块,无需引用 template.js:

  1. var render = require('./tpl/build/news/list');
  2. var html = render(_list);

 

 

jquery template模板引擎

http://www.cnblogs.com/FoundationSoft/archive/2010/05/19/1739257.html

http://www.cnblogs.com/whitewolf/archive/2011/10/09/2204185.html

https://github.com/BorisMoore/jquery-tmpl

 

复制代码
    <!DOCTYPE html><html><head><script src="http://code.jquery.com/jquery-latest.min.js"></script><script src="http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"></script></head><body><ul id="movieList"></ul><script>var movies = [{ Name: "The Red Violin", ReleaseYear: "1998" },{ Name: "Eyes Wide Shut", ReleaseYear: "1999" },{ Name: "The Inheritance", ReleaseYear: "1976" }];var markup = "<li><b>${Name}&lt;/b&gt; (${ReleaseYear})</li>";/* Compile the markup as a named template */$.template( "movieTemplate", markup );/* Render the template with the movies data and insertthe rendered HTML under the "movieList" element */$.tmpl( "movieTemplate", movies ).appendTo( "#movieList" );</script></body></html>
复制代码
        </div></div>

http://chatgpt.dhexx.cn/article/32B3OoUr.shtml

相关文章

JavaScript 模板引擎

模板引擎 作用&#xff1a;用于JSON数据中生成字符串常用模板引擎&#xff1a; 1.Art-template 2.DOT 3.JavaScript-Templates 4.Template.js 5.Tempo 6. ECT 7. Dot Dom 8.Template7 9.Bunny 10.Squirrelly 11.ejs模板代码写在script标签中 script 标签的特点是: 1.标签内容…

前端模板引擎:Handlebars

Handlebars.jpg 一. 为什么要使用模板引擎 关于为什么要使用模板引擎, 就我现在的项目而言,我还停留在进行发送Ajax请求到后台后,利用模板引擎拼接接受到的JSON字符串,展现到页面的地步. 按照我老师的一句话表达:不用重复制造轮子. 对于为什么要使用模板引擎的解释,我看过最好…

SpringBoot (二) 整合前端模板引擎FreeMarker、thymeleaf

哈喽&#xff0c;大家好&#xff0c;我是有勇气的牛排&#xff08;全网同名&#xff09;&#x1f42e;&#x1f42e;&#x1f42e; 有问题的小伙伴欢迎在文末评论&#xff0c;点赞、收藏是对我最大的支持&#xff01;&#xff01;&#xff01;。 前言 开发网站的时候&#x…

如何选择 Web 前端模板引擎?

&#xff08;点击上方公众号&#xff0c;可快速关注&#xff09; 作者&#xff1a;喻恒春 my.oschina.net/editorial-story/blog/1825266 Web 模板就在那里 模板引擎负责组装数据&#xff0c;以另外一种形式或外观展现数据。 浏览器中的页面是 Web 模板引擎最终的展现。 无论你…

Juicer – 一个 JavaScript 模板引擎的实现和优化

说明 本文转载自&#xff1a;淘系前端团队&#xff1a;Juicer – 一个 JavaScript 模板引擎的实现和优化 介绍 让我们从一段代码说起&#xff0c;假设有一段这样的 JSON 数据&#xff1a; var json {name: 流火,blog: ued.taobao.org };我们需要根据这段 JSON 生成这样的 …

模板引擎?看这一篇就懂了

概念 模板引擎可以让&#xff08;网站&#xff09;程序实现界面与数据分离&#xff0c;业务代码与逻辑代码的分离&#xff0c;这就大大提升了开发效率&#xff0c;良好的设计也使得代码重用变得更加容易。 光看生硬的概念没有用&#xff0c;接下来我来给大家详细解释&#xff0…

前端模板引擎 artTemplate

artTemplate是新一代 javascript 模板引擎 特性&#xff1a;性能卓越&#xff0c;执行速度通常是 Mustache 与 tmpl 的 20 多倍&#xff08;性能测试&#xff09; 支持运行时调试&#xff0c;可精确定位异常模板所在语句&#xff08;演示&#xff09; 对 NodeJS Express 友好…

js模板引擎渲染html,JavaScript模板引擎 art-template.js 的使用

一、基本使用 1、引入模板引擎(版本为4.13.2) 2、编写模板和渲染的容器 {{title}} 3、获取模板并往模板里插入数据 var data { title: "hello world", desc: " 这是一段描述" }; var html template("test-template",data); 4、把模板渲染到页面…

前端开发--art-template模板引擎及实现原理

#博学谷IT学习技术支持# 目录 简介 安装 使用步骤 ​编辑 art-template标准语法 值输出 原文输出 条件输出 循环输出 过滤器 模板引擎的实现原理 1.基本语法 2.分组 3.字符串的replace函数 4.多次replace 5.使用while循环replace 6.replace替换为真值 实现简…

template.js——前端模板引擎

1. 什么情况下推荐使用template.js (1)在你的页面布局中存在一样的模块,可以提出公共的模块,便于维护 注:此处用到循环来减少工作量 对应代

jquery template.js前端模板引擎

1、加载模板引擎js&#xff08;jquery.tmpl.js&#xff09; 可下载链接&#xff1a;https://github.com/BorisMoore/jquery-tmpl 2、直接上代码 <script type"text/javascript" src"${ctxStatic}/web/js/jquery.tmpl.js"></script> <!--…

java 前端模板_前端模板引擎入门

模板引擎 模板引擎 起到 数据和视图分离的作用&#xff0c; 模板对应视图&#xff0c; 关注如何展示数据&#xff0c; 在模板外头准备的数据&#xff0c; 关注那些数据可以被展示。 后端模板引擎 freemarker 如下介绍&#xff0c; java后台的模板引擎&#xff0c; freemark介绍…

art-template前端模板引擎

目录 内容介绍一、使用方法二、主要API1、原文输出2、逻辑判断3、循环语句 三、代码四、页面显示五、其他1、pre标签2、code标签 内容介绍 今天我们要了解的是一款高性能的 art-template 前端模板引擎 —— template-web.js。 一、使用方法 定义容器元素通过type"text/…

前端模板引擎——handlebars

目录 一、代码二、页面显示 一、代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>handlebars 前…

ESLINT错误提示 no-unused-vars

ESLINT错误提示 no-unused-vars 使用ESLINT时遇到如下错误的提示 查阅资料得知&#xff0c;是需要使用插件 https://github.com/typescript-eslint/typescript-eslint/issues/941 全局按照 eslint-plugin-react npm install eslint-plugin-react -g 修改eslint的配置项 "e…

Jmeter书中不会教你的(2)——vars.get和${}引用区别

在上一篇中&#xff0c;我们了解了在beanshell中可以利用vars获取和设置新的变量&#xff0c;也知道了如何用log去查看日志&#xff0c;以及两种获取变量值的方法。没看过的可以点这里Jmeter书本中不会教你的&#xff08;1&#xff09;——beanshell用来获取变量和设置变量的va…

【Python报错-01】解决matplotlib在Pycharm中运行报错:vars()参数必须有__dict__属性

1 运行错误 &#xff08;1&#xff09;程序的原代码如下图所示&#xff1a; import matplotlib.pyplot as plt # 是可视化绘图工具 …… #省略了计算SSE的代码 plt.plot(range(1, 11), SSE) plt.xlabel("聚类数k", fontsize12) plt.ylabel("误差平方和SSE&…

Jmeter书中不会教你的(1)——beanshell用来获取变量和设置变量的vars

这几年Jmeter用的相对比较多&#xff0c;自己每次在做项目时也常会去翻看以前遇到的问题&#xff0c;记录的一些技巧&#xff0c;解决方案&#xff0c;也一直考虑把它整理出来&#xff0c;一来方便自己查找&#xff0c;二来也希望同行可以互相切磋。我写的这些文章不是针对Jmet…

eslint 配置no-unused-vars规则,TypeScript接口抛出“ no-unused-vars”报错

1.项目使用了typescript&#xff0c;并在.eslintrc.js中使用该配置&#xff0c;type类型接口形参检测报错 no-unused-vars: 检测未使用的变量&#xff0c;函数和函数的参数 type类型接口如下&#xff1a; 报错如下&#xff1a; 2.解决 将 “no-unused-vars” 替换成 “typesc…

mmdetection报错 TypeError: vars() argument must have __dict__ attribute

下载官方代码&#xff0c;安装好环境后第一个demo就报错 报错1、error: the following arguments are required: img, config, checkpoint 添加-- 报错2、manager_pyplot_show vars(manager_class).get("pyplot_show")TypeError: vars() argument must have __dict_…