自我介绍
art-template 是一个简约、超快的模板引擎。
它采用作用域预声明的技术来优化模板渲染速度,从而获得接近 JavaScript 极限的运行性能,并且同时支持 NodeJS 和浏览器。
// 基于模板名渲染模板
template(filename, data);
// 将模板源代码编译成函数
template.compile(source, options);
// 将模板源代码编译成函数并立刻执行
template.render(source, data, options);
npm install art-template --save
下载:template-web.js(先引入)
使用 Webpack 的 Loader: art-template-loader。
template.defaults.imports
模板通过 $imports
可以访问到模板外部的全局变量与导入的变量。
template.defaults.imports.log = console.log;
$data
传入模板的数据$imports
外部导入的变量以及全局变量print
字符串输出函数include
子模板载入函数extend
模板继承模板导入函数block
模板块声明函数
{{value}}
{{data.key}}
{{data['key']}}
{{a ? b : c}}
{{a || b}}
{{a + b}}
模板一级特殊变量可以使用 $data
加下标的方式访问:
{{$data['user list']}}
{{@ value }}
{{if value}} ... {{/if}}
{{if v1}} ... {{else if v2}} ... {{/if}}
{{each target}}
{{$index}} {{$value}}
{{/each}}
target
支持 array
与 object
的迭代,其默认值为 $data
。$value
与 $index
可以自定义:{{each target val key}}
。
{{set temp = data.sub.content}}
{{extend './layout.art'}}
{{block 'head'}} ... {{/block}}
{{include './header.art'}}
{{include './header.art' data}}
template.defaults.imports.dateFormat = function(date, format){/*[code..]*/};
template.defaults.imports.timestamp = function(value){return value * 1000};