Javascript 胡子模板库?

Javascript 胡子模板库?,javascript,html,django,cakephp,mustache,Javascript,Html,Django,Cakephp,Mustache,小胡子的一些用例是什么 我今天才发现它,但我似乎不明白它与在框架中创建常规模板文件(cakePHP、django等)或拥有html+php文件有何不同。Mustach几乎不允许视图中的智能——分离关注点是它的用例 它是另一个模板引擎/库,唯一(真正)的区别在于它的语法和原理。小胡子的全部意义在于它没有逻辑性。您可以将格式良好的JSON传递给它,其余的都是用超级简单的语法完成的。这与PHP的不同之处在于没有if语句、else子句或for循环。相反,只有标签。有些标记替换为一个值,有些标记替换为no

小胡子的一些用例是什么


我今天才发现它,但我似乎不明白它与在框架中创建常规模板文件(cakePHP、django等)或拥有html+php文件有何不同。

Mustach几乎不允许视图中的智能——分离关注点是它的用例


它是另一个模板引擎/库,唯一(真正)的区别在于它的语法和原理。

小胡子的全部意义在于它没有逻辑性。您可以将格式良好的JSON传递给它,其余的都是用超级简单的语法完成的。这与PHP的不同之处在于没有if语句、else子句或for循环。相反,只有标签。有些标记替换为一个值,有些标记替换为nothing,其他标记替换为一系列值。您不需要管理多个数组,只需要设置一个javascript对象,然后忘记并观察页面呈现


更多信息/来源:

以前的回答忽略了一个事实,即使用库作为Mustache时,整个页面呈现是在客户端完成的,而大多数模板引擎后来用于在服务器端呈现部分内容和格式化


我看到的这个库的主要用例是基于JSON或XML web服务创建web应用程序,这些web服务是从您无权访问的服务器上提供的。

Mustach对我来说最吸引人的地方之一是它有很多实现

举个简单的例子,您可能正在创建一个产品列表

  • 服务器端-加载前25个产品。使用服务器端的Mustache实现呈现产品
  • 客户端-用户向下滚动页面并单击“加载更多”。此时,您将使用Ajax调用获取其他产品,并使用Mustache的JS实现呈现它们

  • 相同的模板,重用客户端和服务器端。如果您需要更改HTML,您只需在一个位置进行更改,它将与服务器端呈现和客户端呈现的内容保持一致。

    用例1:仅静态托管。用例2使用javascript和mustache模板从json api呈现数据:)mustache中实际上有条件语句和循环。我们称之为“无逻辑”,因为没有if语句、else子句或for循环。相反,只有标签。有些标记替换为一个值,有些标记替换为nothing,其他标记替换为一系列值。“显然,任何事情都可以通过这个系统实现,否则人们就不会使用它。但本质上没有条件陈述,我理解你的观点。但我只指出这一点,因为我有同事,他们试图让我们的团队远离Mustache,因为他们不知道如何在他们的Mustache模板中编写条件块(或者用他们的话说,他们会说“Mustache中没有if语句或循环”)。条件:{{item.price}${{item.price}{{/item.price}{{{item.price}}N/A{{/item.price}}这就是我的意思。mustach是一种模板语言,mustach.js只是其中的一个实现。使用Mustache.js,整个页面都呈现在客户端。使用mustache(规范的Ruby实现),pystache、mustache.erl、mustache.php、Template mustache、GRMustache、mustache.java、Nustache、jmustache、plustache、mustache.go、hige、mustang、mustache.cfc、scalate、clostache、Milk、mustache4d、Mu、Hogan.js(甚至节点上的mustache.js)模板在服务器端呈现。绝对正确,我的答案可能是有偏见的,因为我自己使用了这个模板系统,它围绕着由JSON后端提供服务的web应用程序。我没有看到使用it服务器端的真正优势(服务器通常用于应用程序逻辑)。