2017-03-02 91 views
0

我是Node.js的新手。我想知道像Pug(以前的Jade)这样的模板背后的原因,它不遵循HTML语法(在HTML元素内部有标签)。对我而言,看起来这是一个额外的步骤。有人可以帮助什么可能是原因还是我错过了什么?为什么帕格或其他模板不遵循HTML标签

+0

因为少打字,所以我们有json和yaml。尽管如此,投票结果过于宽泛和偏离主题。 – shabunc

+2

这不是Node.js特有的。 Jade/Pug遵循Ruby模板引擎[Haml](http://haml.info/)的脚步,并且有很多“传统”嵌入[用于JavaScript的模板引擎](https://garann.github。 IO /模板选取器/)。 –

回答

0

为什么使用模板引擎?

正确隔离视图的工作。由于它“限制”你在模板中注入复杂的代码,它可以帮助你保持干净的模板。它可以更容易地拥有iterotors,mixin,变量,布局扩展等等。它使得视图更少的技术和更独立于控制器的工作。 Th的目标是只需要一个响应数据输入的模板。对于前端开发人员来说,生活是如此简单,以至于编辑模板时无需关心在后端调用的方法。

为什么使用缩进结构化语言?

为什么Pug/Haml/Yaml/Slim-lang或任何由缩进构成的语言?因为它减少了编写代码的次数,所以它可以确保您不会输入一些<a/>而不是</a><ab></ac>。每个额外的不需要的代码字符都是一个潜在的错误。阅读的代码越少,代码就越难以理解,如果意义丰满,这是主观的,但我们很多人都会发现帕格更清楚。按缩进结构也会强制每个人正确缩进模板。

难道是额外的一步吗?

没有,因为在生产中,它不会被重新编译,所以用户只会渲染编译好的模板。

+0

作为说明,我会补充一点,HTML标记是XML标记,这不是表示DOM或任何AST的有效方法。所以wa也可以提出相反的问题:为什么要用HTML编写模板? – KyleK