Javascript-Vorlagen-Engine artTemplate
Feb 11, 2017 pm 02:19 PMartTemplate
新一代 javascript 模板引擎
=================
artTemplate 是新一代 javascript 模板引擎,它在 v8 中的渲染效率可接近 javascript 性能极限,在 chrome 下渲染效率测试中分别是知名引擎 Mustache 与 micro tmpl 的 25 、 32 倍(性能测试)。
引擎支持调试。若渲染中遇到错误,调试器可精确定位到产生异常的模板语句,解决前端模板难以调试的问题(详情)。
另外,artTemplate 的模板还支持使用自动化工具预编译,这一切都在 2KB(Gzip) 中实现!
快速上手
编写模板
使用一个type="text/html"的script标签存放模板:
1 2 3 4 5 6 |
|
模板逻辑语法开始与结束的界定符号为<% 与%>,若<%后面紧跟=号则输出变量内容。
渲染模板
template.render(id, data)
1 2 3 4 |
|
演示
嵌入子模板
<%include(id, [data])%>语句可以嵌入子模板,其中第二个参数是可选的,它默认传入当前的数据。
1 2 3 4 5 6 7 8 |
|
演示
不转义HTML
模板引擎默认数据包含的 HTML 字符进行转义以避免 XSS 漏洞,若不需要转义的地方可使用==。
1 2 |
|
若需要关闭默认转义,可以设置template.isEscape = false。
演示
在js中存放模板
template.compile([id], source)将返回一个渲染函数。其中 id 参数是可选的,如果使用了 id 参数,可以使用template.render(id, data)渲染模板。
1 2 3 4 5 6 7 8 9 |
|
演示
添加辅助方法
template.helper(name, callback)辅助方法一般用来进行字符串替换,如 UBB 替换、脏话替换等。
例如扩展一个UBB替换方法:
1 2 3 4 5 6 7 |
|
在模板中的使用方式:
1 |
|
注意:引擎不会对辅助方法输出的 HTML 字符进行转义。
演示
设置界定符
若前端模板语法与后端语法产生冲突,可以修改模板引擎界定符,例如:
1 2 |
|
演示
自定义语法
artTemplate 提供一个语法扩展用来简化模板逻辑语法。语法示例:
1 2 3 4 |
|
安装:把 extensions/template-syntax.js 合并到 template.js 底部。
更多语法说明
自动化工具
预编译工具
使用它可以让前端模版不再受浏览器的限制,支持如后端模版一样按文件放置、include 语句等特性,可以像后端一样书写前端模板!
编译后的模板不再依赖前端模板引擎与后端,模板可以通过 SeaJS 或 RequireJS 等加载器进行异步加载,亦能利用它们成熟的打包合并工具进行上线前的优化,如合并与压缩。
项目主页:<https://github.com/aui/tmodjs>
抽取工具
./tools/combine.html
可以把 HTML 中的模板提取出来以便把模板嵌入到 js 文件中。
与编译工具不同的是,抽取后的模板仍然依赖引擎运行。
模板编码规范
1、不能使用 javascript 关键字作为模板变量(包括 ECMA5 严格模式下新增的关键字):
1 2 3 4 |
|
2、模板运行在沙箱中,内部无法访问外部变量,除非给模板定义辅助方法。例如:
1 |
|
> 模板中若任意引用外部对象,复杂的依赖管理将会让项目难以维护,这种方式将利于后续模板迁移(包括通过工具预编译)。
所有演示例子 | 引擎原理
以上就是javascript 模板引擎artTemplate的内容,更多相关内容请关注PHP中文网(www.php.cn)!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

So implementieren Sie ein Online-Spracherkennungssystem mit WebSocket und JavaScript

WebSocket und JavaScript: Schlüsseltechnologien zur Implementierung von Echtzeitüberwachungssystemen

So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript

Verwendung von JavaScript und WebSocket zur Implementierung eines Echtzeit-Online-Bestellsystems

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems

Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode

So erhalten Sie auf einfache Weise HTTP-Statuscode in JavaScript

So verwenden Sie insertBefore in Javascript
