使用模版就可以不用在 JS 里手动的使用字符串相加拼写 HTML 片段了。
JS 中有很多模版库,例如 artTempalte
、doT、juicer、laytpl、Mustache、Underscore Templates、Embedded JS Templates、HandlebarsJS、Jade templating、baiduTemplate、kissyTemplate 等等,总的比较下来,语法上更喜欢的是 artTempalte
,其性能也不错;laytpl
号称性能之王,比 artTemplate 和 doT 还快,如果追求性能,可以试试它 http://laytpl.layui.com。
artTempalte 用法:
定义模版
1
2
3
4// type="text/html" 是为了让其不被浏览器作为 JS 解析,同时还不可见
<script id="templateId" type="text/html">
Your name: {{name}}
</script>定义模版使用的数据的 Json 对象:
1
var data = {name: 'John'};
使用
函数 template() + 模版 + 数据
生成 HTML1
2// templateId 是 <script> 的 id
var html = template('templateId', data);添加生成的 HTML 到 DOM
artTempalte 实例
1 |
|
在模版里直接 boolean 变量不会输出任何东西
1 | {{boolean}} 输出为空白 |
需要判断后再输出,例如
1 | {{valid?'Valid':'Invalid'}} |
ArtTemplate Github
更多的详细说明和使用案例请参考 https://github.com/aui/artTemplate
下载 artTemplate: https://raw.github.com/aui/artTemplate/master/dist/template.js