javascript - JavaScript 支持哪些好的模板语言?

标签 javascript templates

在成熟的编程语言中,模板是一项相当健康的业务,但是有什么好的模板可以在 JavaScript 中处理吗?

"template"是指接受数据对象作为输入、将数据插入某种序列化标记语言并输出标记的文档。著名的例子是 JSP ,原始PHP,XSLT .

我所说的“好”是指它是声明性的,对于 HTML 作者来说很容易编写,它很健壮,并且也支持其他语言。比我所知道的选项更好的东西。 “不好”的一些例子:

<小时/>

字符串数学:

element.innerHTML = "<p>Name: " + data.name
    + "</p><p>Email: " + data.email + "</p>";

显然太笨拙了,HTML 结构不明显。

<小时/>

XSLT:

<p><xsl:text>Name: </xsl:text><xsl:value-of select="//data/name"></p>
<p><xsl:text>Email: </xsl:text><xsl:value-of select="//data/email"></p>

//从结构上来说,这很有效,但让我们面对现实吧,XSLT 让 HTML 开发人员感到困惑。

<小时/>

trim 路径:

<p>Name: ${data.name}</p><p>Email: ${data.email}</p>

//这很好,但处理器仅在 JavaScript 中受支持,并且该语言有点原始 ( http://code.google.com/p/trimpath/wiki/JavaScriptTemplateSyntax )。

<小时/>

我希望看到 JSP 或 ASP 或 PHP 的子集移植到浏览器,但我还没有找到。

现在人们在 JavaScript 中使用什么来构建模板?

附录 1 (2008)

几个月后,这里发布了大量可用的模板语言,但其中大多数无法在任何其他语言中使用。这些模板中的大多数都无法在 JavaScript 引擎之外使用。

微软的异常(exception)——您可以在浏览器或任何其他 ASP 引擎中处理相同的 ASP。这有其自身的一系列可移植性问题,因为您必须使用 Microsoft 系统。我将其标记为答案,但我仍然对更便携的解决方案感兴趣。

附录 2(2020)

尘埃落定这个老问题,十年后,Mustache 得到了数十种语言的广泛支持。现在这是当前的答案,以防有人仍在阅读本文。

最佳答案

John Resig http://ejohn.org/blog/javascript-micro-templating/ 有一个迷你 javascript 模板引擎

关于javascript - JavaScript 支持哪些好的模板语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/128949/

相关文章:

javascript - 使用 ES6 语法导入一个包作为另一个包的扩展

javascript - 如何根据选择的选项值验证表单输入字段?

c++ - 仅 header 实现中的大型静态数组

html - Joomla 不在前端显示图像

javascript - 更新变量时动态刷新模板的一部分golang

javascript - 断言该方法已在与 Mocha 和 Sinon 的 promise 中被调用

javascript - 缓存:false in ajax call attach a value with URl

javascript - Angular 2,Auth0 未捕获语法错误 : Unexpected token <

php - 带有命名参数的 vsprintf 或 sprintf,或者 PHP 中的简单模板解析

c++ - 多模板化接口(interface)继承名称隐藏