JavaScript 模板引擎

article/2025/11/10 7:59:11

模板引擎

  • 作用:用于JSON数据中生成字符串
  • 常用模板引擎:
    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.标签内容永远不会显示在界面上
2. 如果 type 不等于 text/javascript 的话,内部的内容不会作为 JavaScript 执行

Art-template

介绍:

是一个简单且超快速的模板引擎,可通过范围预先声明的技术优化模板渲染速度。
它实现了接近JavaScript极限的运行时性能。同时,它支持NodeJS和浏览器。

  • 拥有接近 JavaScript - 渲染极限的的性能
  • 调试友好:语法、运行时错误日志精确到模板所在行;支持在模板文件上打断点(Webpack Loader)
  • 支持 Express、Koa、Webpack
  • 支持模板继承与子模板
  • 浏览器版本仅 6KB 大小

官方下载链接

链接: 下载地址

模板语法的用法

  • 将下载的 art-template.js 文件复制进在生产的 js 文件中,然后用 <script>标签引入到 html中
      <!-- 引入art-template模板库 --><script src="./js/template-web.js"></script>
  • 编写HTML模板
     <!-- 编写模板语法 --><div id="box"><script id="test" type="text/html"><h1>{{ title }}</h1></script></div>
  • 向模板插入数据,并输出到页面
   <script>let data={title:"hello world"}var html = template("test",data)const divEle= document.getElementByID('#box')divEle.indexHTML = html</script>

语法

  • 模板插值语法 {{ 变量 }} 如 {{ title }}
  • 流程控制语句 (if else)可以用来判断
    在这里插入图片描述
  • 循环遍历语句
    each关键字后面跟上要循环的 数组
    $index :索引号
    $value:数项
    用循环遍历的方法渲染商品列表代码演示
  <table><!-- 定义显示商品列表模板 --><script type="text/html" id="table1"><tr><th>序号</th><th>名称</th><th>价格</th><th>数量</th><th>状态</th></tr>{{ each list}}<tr><td>{{ $index }}</td><td>{{ $value.name}}</td><td>{{ $value.price}}</td><td>{{ $value.num}}</td><!-- <td>{{ $value.state?'正常':'不正常' }}</td> --><td>{{ if $value.state }}<button style="color: red;" onclick="setState({{ $index }})">正常</button>{{ else }}<button style="color: green;" onclick="setState({{ $index }})">不正常</button>{{ /if}}</td></tr>{{ /each}}</script></table>
<script>let data = {list: [{name: 'javascript高级编程',price: 80.98,num: 10,state: false},{name: 'vue高级编程',price: 180.98,num: 2,state: true},{name: 'react高级编程',price: 220.98,num: 5,state: false},]}const tableEle = document.querySelector('table')//渲染商品列表let productListStr = template('table1', data)tableEle.innerHTML = productListStr/*** 设置状态*/function setState(index) {let product = data.list[index]product.state = !product.state//渲染商品列表let productListStr = template('table1', data)tableEle.innerHTML = productListStr}</script>

http://chatgpt.dhexx.cn/article/0oYn0fJF.shtml

相关文章

前端模板引擎: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_…

Pycharm使用matplotlib报错:TypeError: vars() argument must have __dict__ attribute 解决方法

Pycharm使用matplotlib绘图时报错 问题描述 TypeError: vars() argument must have __dict__ attribute源程序&#xff1a; # -*- encoding: utf-8 -*-File : MaLearnTest01_1.py Time : 2023/03/03 09:39:05 Author : seveN1foR Version : 1.0 Contact : s…