您推荐使用哪些JavaScript模板引擎?

79

http://garann.github.io/template-chooser/ - Robert Harvey
https://github.com/foo123/Contemplate,是一个轻量级、快速、灵活且同构的模板引擎(包含jsperf测试和示例测试)(附注:我是作者)。 - Nikos M.
5个回答

108

6
效果真棒(讽刺)。回答前三个问题: 客户端或服务器:客户端 有多少逻辑:只有基础知识 需要是最快的之一吗:是的没有任何结果。 - Salvador Dali
2
@SalvadorDali -- “最快”的所有编译都直接转换为JS,因此您的另一个要求是它只有“基础知识”,这与它们不限制任何内容相冲突。 - user578895
1
@SalvadorDali,是一个帮助你选择事物的工具,但它并不能让这些事物按照你的意愿去运作。 - Will
1
只是注意,此网站不再受支持:https://github.com/garann/template-chooser - Chris
我的最爱是Slim(http://slim-lang.com)。特别适合Ruby粉丝。 - Alex Nazarov
1
该项目没有支持。 - hellboy

24

在性能方面,我发现问题并不在于模板引擎本身,而更多地取决于是否有预编译模板的可能性。无论如何,在生产模式下,将所有JavaScript源文件合并和缩小为一个文件是一种良好的实践,因此预编译模板基本上是相同的步骤。

我使用过jQuery模板和Mustache进行客户端模板化,但我最喜欢的仍然是EJS,它总是比我尝试过的其他任何东西都要快得多,特别是在生产模式下(尽可能编译为原生字符串连接,并且只需要一个DOM访问来实际插入渲染视图)。它是JavaScriptMVC框架的一部分,当您将其与StealJS作为依赖管理器一起使用时,它已经为您将所有模板编译到生产中了(View Engine还支持Micro、Mustache和jQuery模板)。


我目前正在使用backbone.js进行构建,它已经具备了underscore模板引擎,不知道是否应该转向其他模板引擎。但是从所有这些基准测试中我所能看到的是mustache似乎是胜者? - kaha
我有一个脚本的分支,它可以使用下划线模板在这里工作:https://github.com/kmiyashiro/jquery-tmpl-jst - kmiyashiro
3
毫无疑问,EJS是最好的。它简单易用,让您轻松编写JavaScript,以一种超级干净的方式远程加载代码,并让您将'<'替换为'['以适应服务器端编码。对我而言,其他所有东西都像是一些极客试图通过一些漂亮的语法抽象垃圾来使其变得可爱。 - King Friday
EJS - 也是我最喜欢的 - 不再维护了,但有一个性能比原版高10倍的分支已经被创建并在这里得到维护:https://github.com/joshlangner/ejspeed - Joshua
这个特定的链接版本的EJS现在实际上是CanJS框架的一部分:http://canjs.com/docs/can.EJS.html - Daff
显示剩余4条评论

11

可能是 PURE — 它允许使用从现有 HTML 模板生成的特殊语法将 JSON 转换为 HTML。

来自 PURE 站点:

用于从 JSON 数据生成 HTML 的简单和超快速模板工具

表现形式 (HTML) 和逻辑 (JS) 完全分离

与 dojo、DomAssistant、Ext JS、jQuery、Mootools、Prototype、Sizzle 和 Sly 独立或配合使用

最好的方法是看看 此库实际执行了什么: (来自官方演示) pure template engine demonstration

所有演示都在这里


1
文档不是很准确,而且Github存储库中没有问题跟踪器来报告错误。 - smonff

8

1
他们还解释了为什么选择这个:http://engineering.linkedin.com/frontend/leaving-jsps-dust-moving-linkedin-dustjs-client-side-templates和http://engineering.linkedin.com/frontend/client-side-templating-throwdown-mustache-handlebars-dustjs-and-more。这是一项很好的工作,他们的论点听起来很不错。 - Offirmo

4
选择你认为最吸引人的API和语法的模板语言。 如果遇到性能问题,那么可以考虑其他选择。
除非您正在构建具有数千行的表格,否则您可能不会注意到差异。
个人而言,我使用谷歌的{{link1:Closure Templates}}。 我选择它主要是因为它也有Java实现。 我从未进行过基准测试。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接