【发布时间】:2016-02-19 20:10:46
【问题描述】:
我以前从未听说过。 “像 HTMLBars 这样的模板语言”是否与 Ember.js 相关?
【问题讨论】:
-
Google 上肯定有很多关于“HTMLBars”的结果。第一个甚至是 HTMLBars 存储库!
我以前从未听说过。 “像 HTMLBars 这样的模板语言”是否与 Ember.js 相关?
【问题讨论】:
我会尽力解释的。
模板引擎和语言称为handlebars。该语言是(X)HTML 的超集,因此可以使用所有HTML 和大括号中的一些特定内容,这些内容将被handlebars 模板引擎替换。这完全适用于字符串替换。因此,您使用 handlebars 编译器编译您的 handlebars 模板并获得一个 Javascript 函数,该函数将接受一个 Javascript 对象并通过替换 handlebarsparts 生成一个 HTML 字符串。
HTMLBars 是一个完整的 HTML 解析器。它基于handlebars 模板语言,但实际上能够理解您的HTML 代码。据我所知,它并不完全支持HTML/SGML,所以HTMLBars 语言是handlebars 语言的子集。
由于其对 HTMLPart 的了解,HTMLBars 能够直接构建 DOM 而不是 HTML 字符串。这比将字符串注入浏览器渲染引擎更快,并允许更多功能。例如,由于 HTMLBars ember 模板能够更新 <img src={{myUrl}} /> 之类的属性。这是以前做不到的,因为handlebars 不知道占位符是否在标签中。因此,在HTMLBars 之前,您必须执行 `.
HTMLBars 也是当前名为 Glimmer 的 ember 模板引擎的基础。
【讨论】: