【问题标题】:What is a template engine? [duplicate]什么是模板引擎? [复制]
【发布时间】:2023-03-04 16:10:01
【问题描述】:

可能重复:
Javascript templating engines?

我一直在偶然发现 javascript 模板引擎,但我不知道它们的目的是什么。谁能像我五岁一样解释我这些是什么?前端开发者可以利用这些吗?

【问题讨论】:

  • JS 模板引擎用于做应该在服务器端做的事情。如果你正在使用它们,要么你正在运行 node.js 并且 在服务器端执行它,要么你正在开发一个你不打算出现在搜索中的大型 ajax 应用程序引擎。
  • mootools,scriptaculous,yui,jquery,dojo
  • 那些不是模板引擎...那些是框架。
  • @cHao 我一般同意你的观点,但是有一些应用程序可以很好地利用它们,例如内部应用程序或用户体验> seo 的应用程序。另一个例子是documentcloud.org/home
  • 模板方法旨在简化标记的重用(在网络世界中)。尽管@cHao 似乎暗示它们的使用只属于服务器,但大型 Web 应用程序除外,就像任何工具一样,如果使用得当,模板可以在大多数情况下以一种或另一种方式有效使用。例如,实时 Twitter 滚动,或者当您发现自己一遍又一遍地使用相同的 markup in Javascript 时。

标签: javascript


【解决方案1】:

JavaScript 模板引擎通常在编写厚 JS 客户端时使用,或者在使用像 Node.js 这样的服务器端 js 时用作“普通”模板引擎。

不要通过使用字符串连接等生成 HTML 来使代码混乱,而是使用模板并在其中插入变量。

例如,在下面的示例中,您将数组 foo 传递给模板引擎,然后模板引擎使用数组 foo 中的项目 i 进行插值(替换占位符 ${data}):

//pseudo code
<table>
 <tr>
   for each variable data in foo
    <td>${data}</td>
   end
 <tr>
</table>

在像backbone.js 这样的框架中,您通常使用模板来实现MVC 模式的视图部分。

JS 中有许多不同类型的模板引擎。有些是 ERB、HAM​​L 等服务器端框架的直接端口。有些是专门为使用 JavaScript 而开发的,例如 Pure

对于模板引擎应该为您提供多少表现力存在争议,因为在模板中添加逻辑通常是一件坏事。因此,一些模板引擎专门设计为不允许您将逻辑放入其中,即Mustache

【讨论】:

    猜你喜欢
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 2012-08-02
    • 1970-01-01
    • 2023-03-22
    相关资源
    最近更新 更多