详解js模板引擎art template数组渲染的方法


Posted in Javascript onOctober 09, 2018

JavaScript 模板引擎作为数据与界面分离工作中最重要一环,越来越受开发者关注,模板引擎种类也是五花八门,我就说几个安全性高、错误处理调试优,执行速度快的有artTemplate(腾讯 14k)、juicer(国外 12k)这俩个,doT除了错误处理调试差以外其他的都和这两个一样,他有一个优点是小(4k),扯远啦。

art-template 是一个简约、超快的模板引擎。

什么是art-template

art-template 是一个简约、超快的模板引擎。它采用作用域预声明的技术来优化模板渲染速度,从而获得接近 JavaScript 极限的运行性能,并且同时支持 NodeJS 和浏览器。使用art-template也便于维护代码,以前我们渲染数据是以模板字符串的形式在js文件中写入的html内容,如果html内容需要修改,我们需要在js中修改。而用了模板引擎以后,我们只需要html文件中修改html内容。还有使用了模板引擎以后DOM操作的效率也会更高一点。

它采用作用域预声明的技术来优化模板渲染速度,从而获得接近 JavaScript 极限的运行性能,并且同时支持 NodeJS 和浏览器。在线速度测试。

art-template特性

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

我们就讲一下讲简洁语法的渲染方式,template(filename, content)根据模板名渲染模板。前提是你已经对artTemplate有所了解,

今天我们就讲一下数组渲染的方法

数组渲染有数组对象和纯数组两种形式,我们先说数组对象,如后端返回我们接口,收到的就是一个数组。比如:

const res = [
{"name":"小明", "age":16, "marry":"单身"},
{"name":"小花","age":15, "marry":"有男朋友"},
{"name":"小胖","age":15, "marry":"有女朋友"},
{"name":"小丽","age":15, "marry":"单身"}
];

用artTemplate有个好处就是除了你的数据需要重组,其他的完全可以拿来直接用。如下

html

<div id="person"></div>

js

<script>
const res = [
{"name":"小明", "age":16, "marry":"单身"},
{"name":"小花","age":15, "marry":"有男朋友"},
{"name":"小胖","age":15, "marry":"有女朋友"},
{"name":"小丽","age":15, "marry":"单身"}
];
document.getElementById('person').innerHTML = template('personTemp', {data:res}); // 其实这里是把数组转为对象的形式传进的
</scrtip>

template

<script type="text/html" id="personTemp">
//写法一
{{each data}}
<li>{{$index}}索引 我叫{{$value.name}},今年{{$value.age}}岁,{{$value.marry}}</li>
{{/each}}
 
//写法二
{{each data item index}}
<li>{{index}}索引 我叫{{item.name}},今年{{item.age}}岁,{{item.marry}}</li>
{{/each}}
</script>

下面在看数组渲染,这是一个数组

const res = ['文艺', '博客', '摄影', '电影', '民谣', '旅行', '吉他'];

html

<div id="interest"></div>

js

<script>
const res = ['文艺', '博客', '摄影', '电影', '民谣', '旅行', '吉他'];
document.getElementById('interest').innerHTML = template('interestTemp', {data:res}); // 其实这里是把数组转为对象的形式传进的
</scrtip>

template

<script type="text/html" id="interestTemp">
//写法一
{{each data}}
<li>{{$index}}索引 我喜欢{{$value.name}}</li>
{{/each}}
 
//写法二
{{each data item index}}
<li>{{index}}索引 我喜欢{{item}}</li>
{{/each}}
</script>

就说这么多吧,其实这种模板用着挺简单的很顺手。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
arguments对象
Nov 20 Javascript
使用IE6看老赵的博客 jQuery初探
Jan 17 Javascript
JS基础之undefined与null的区别分析
Aug 08 Javascript
面向对象Javascript核心支持代码分享
May 23 Javascript
Javascript继承(上)——对象构建介绍
Nov 08 Javascript
TextArea设置MaxLength属性最大输入值的js代码
Dec 21 Javascript
jquery的flexigrid无法显示数据提示获取到数据
Jul 19 Javascript
不使用jquery实现js打字效果示例分享
Jan 19 Javascript
js和jQuery设置Opacity半透明 兼容IE6
May 24 Javascript
javascript设计模式之单体模式学习笔记
Feb 15 Javascript
js从输入框读取内容,比较两个数字的大小方法
Mar 13 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
May 23 jQuery
angular4强制刷新视图的方法
Oct 09 #Javascript
Angular4.x Event (DOM事件和自定义事件详解)
Oct 09 #Javascript
Vue官方推荐AJAX组件axios.js使用方法详解与API
Oct 09 #Javascript
vue router 源码概览案例分析
Oct 09 #Javascript
Angular4 Select选择改变事件的方法
Oct 09 #Javascript
对angular 监控数据模型变化的事件方法$watch详解
Oct 09 #Javascript
JS判断用户用的哪个浏览器实例详解
Oct 09 #Javascript
You might like
PHP中输出转义JavaScript代码的实现代码
2011/04/22 PHP
php格式化日期实例分析
2014/11/12 PHP
PHP 根据key 给二维数组分组
2016/12/09 PHP
详解PHP的抽象类和抽象方法以及接口总结
2019/03/15 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
jscript之List Excel Color Values
2007/06/13 Javascript
JavaScript中的Location地址对象
2008/01/16 Javascript
JS连接SQL数据库与ACCESS数据库的方法实例
2013/11/21 Javascript
用jquery模仿的a的title属性的例子
2014/10/22 Javascript
Javascript中innerHTML用法实例分析
2015/01/12 Javascript
js+html5实现的自由落体运动效果代码
2016/01/28 Javascript
Bootstrap项目实战之首页内容介绍(全)
2016/04/25 Javascript
学做Bootstrap的第一个页面
2016/05/15 HTML / CSS
AngularJS包括详解及示例代码
2016/08/17 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
2018/08/25 Javascript
node.js爬取中关村的在线电瓶车信息
2018/11/13 Javascript
使用pm2部署node生产环境的方法步骤
2019/03/09 Javascript
vue全局自定义指令-元素拖拽的实现代码
2019/04/14 Javascript
Python正则获取、过滤或者替换HTML标签的方法
2016/01/28 Python
django用户注册、登录、注销和用户扩展的示例
2018/03/19 Python
有关Python的22个编程技巧
2018/08/29 Python
python机器学习之神经网络实现
2018/10/13 Python
Python文件常见操作实例分析【读写、遍历】
2018/12/10 Python
Python银行系统实战源码
2019/10/25 Python
Python类及获取对象属性方法解析
2020/06/15 Python
基于Python爬取fofa网页端数据过程解析
2020/07/13 Python
css3 按钮 利用css3实现超酷下载按钮
2013/03/18 HTML / CSS
英国最大的独立家具零售商:Furniture Village
2016/09/06 全球购物
英国领先的在线药房:Pharmacy First
2017/09/10 全球购物
大学生职业生涯规划范文
2014/01/08 职场文书
县优秀教师事迹材料
2014/01/31 职场文书
我们的节日清明节活动方案
2014/03/05 职场文书
优质护理服务演讲稿
2014/05/07 职场文书
防火标语大全
2014/10/06 职场文书
2016年圣诞节义工活动总结
2016/04/01 职场文书
springboot用户数据修改的详细实现
2022/04/06 Java/Android