javascript模板引擎有什么意义?

时间:2014-02-18 01:42:45

标签: javascript php underscore.js

我知道人们通常给出的答案,但我需要一个具体的例子来说明为什么需要它们。

我得到的最新印象(主要来自underscore.js)是因为它使得代码更像PHP,因为你可以拥有< %%>喜欢?>用PHP

这个想法是让你的代码不像意大利面,并且在表现和逻辑之间有明显的区别。这就是每个人都说的,但我不确定为什么这需要一个模板引擎。

为什么不能在纯JavaScript中执行此操作?您所需要的只是一个将数据作为参数接收的函数,您可以保留javascript语法而不需要发明新语言,这看起来很荒谬。例如,您可以这样做:

populateTable(obj) {
    $('#model').html('
    <h2>' + obj.title + '</h2>' +
    <ul> ... </ul>
}

这对我来说似乎很好。它是一个专门用于使用传递给它的一些模型数据来渲染表的函数。为什么我们需要发明新的语法?

2 个答案:

答案 0 :(得分:2)

我的一个原因是我更喜欢写这个:

<div class="entry">
  <h1>{{title}}</h1>
  <div class="body">
    {{body}}
  </div>
</div>

写这个:

var createEntryTemplate = function(obj) {
  return '<div class="entry">' +
    '<h1>' + obj.title + '</h1>' +
    '<div class="body">' + obj.body +
    '</div>' +
    '</div>';
};

后一种方法也更容易出错 - 如果不适合你,那么可能是另一个人。想象一下,你正在与一个没有很多编程经验的设计师合作,他需要进入并替换大量的HTML。

哦,废话......

答案 1 :(得分:-1)

基本上,使用客户端模板引擎,将服务器端呈现与客户端执行交换,因此可以想到这些

  • Pro:您可以轻松节省大量带宽,因为原始数据通常比HTML呈现小得多
  • Pro:您可以通过在客户端上进行渲染工作轻松地节省大量服务器CPU周期
  • Pro:客户端可能有更多或更容易获取的有关渲染限制的知识(例如屏幕尺寸)
  • Con:您将渲染从一个众所周知且稳定的环境移动到控制之外的移动目标
  • Con:非交互式客户端(例如搜索引擎)不会看到您的最终渲染,难以进行搜索引擎优化,索引等等