Javascript 为什么web应用程序经常使用单独的模板语言来生成web页面?

Javascript 为什么web应用程序经常使用单独的模板语言来生成web页面?,javascript,pug,Javascript,Pug,为什么web应用程序使用单独的模板语言来生成网页(如Jade),而不是使用应用程序的语言(如Java、Python、JavaScript)?我只是想知道是否有实际原因,或者只是为了将逻辑(javascript)与显示代码(jade/html)分开?不同的工具用于不同的作业。 您的应用程序语言并不完全适合模板化。使用其他东西更容易,特别是如果使用将变量数据插入HTML的语言样式,如Swig: <h1>{{ headingText }}</h1> 另一个原因是制作模板的人通

为什么web应用程序使用单独的模板语言来生成网页(如Jade),而不是使用应用程序的语言(如Java、Python、JavaScript)?我只是想知道是否有实际原因,或者只是为了将逻辑(javascript)与显示代码(jade/html)分开?

不同的工具用于不同的作业。

您的应用程序语言并不完全适合模板化。使用其他东西更容易,特别是如果使用将变量数据插入HTML的语言样式,如Swig:

<h1>{{ headingText }}</h1>
另一个原因是制作模板的人通常与构建应用程序的人不同。如果非开发人员已经了解HTML,那么使用将变量嵌入HTML的模板语言对他们来说是非常容易的。可以让网页设计师或技术人员去制作模板,根据需要粘贴可变数据。这对你是否重要取决于你的需要

有一些模板语言,比如Jade,需要非常结构化的DOM构建。虽然这保证了最终的文档是可解析的,但对于构建静态页面的人来说,这可能有点陌生。如果您使用的是Jade之类的东西,那么以这种方式构建DOM仍然比创建节点更方便

您可能会争辩说,从数据以编程方式生成页面很容易。。。从JSON开始。事实上,你是对的。使用它肯定没有什么错


另一方面,因为PHP实际上是一个模板引擎。现在,这有点脱离了上下文,因为PHP比以前成熟多了,Rasmus反对模板引擎的人,他们基本上是在模板中构建web框架。但是,直接使用应用程序语言的想法是存在的。

这看起来比代码更好。但是,该层高度依赖于宿主语言;有些允许非常好的映射。是什么让你认为前者不是一个“真正的原因”?你认为如何用java编写HTML?模板语言用于使程序员编写HTML更容易。正如您所悲伤的,您不能将逻辑放在HTML中(实际上您可以,但非常有限)。
var headingEl = document.createElement('h1');
headingEl.textContent = 'woot';
document.body.appendChild(heading);