什么';javascript模板引擎的意义是什么?
我知道人们通常给出的答案,但我需要一个具体的例子来说明为什么需要这些答案 我得到的最新印象(主要来自underline.js)是,它使代码更像PHP,因为您可以在PHP中使用like?> 这样做的目的是使代码不那么像意大利面条,并且在表示和逻辑之间有明显的区别。这是每个人都说的,但我不确定为什么这需要一个模板引擎 为什么不能用纯javascript来实现呢?您所需要的只是一个将数据作为参数的函数,并且您可以在不发明新语言的情况下保留javascript语法,这看起来很可笑。例如,您可以执行以下操作:什么';javascript模板引擎的意义是什么?,javascript,php,underscore.js,Javascript,Php,Underscore.js,我知道人们通常给出的答案,但我需要一个具体的例子来说明为什么需要这些答案 我得到的最新印象(主要来自underline.js)是,它使代码更像PHP,因为您可以在PHP中使用like?> 这样做的目的是使代码不那么像意大利面条,并且在表示和逻辑之间有明显的区别。这是每个人都说的,但我不确定为什么这需要一个模板引擎 为什么不能用纯javascript来实现呢?您所需要的只是一个将数据作为参数的函数,并且您可以在不发明新语言的情况下保留javascript语法,这看起来很可笑。例如,您可以执行以下操
populateTable(obj) {
$('#model').html('
<h2>' + obj.title + '</h2>' +
<ul> ... </ul>
}
populateTable(obj){
$('#model').html('
“+obj.title+”+
…
}
这对我来说似乎很好。这是一个专用于使用传递给它的一些模型数据呈现表的函数。为什么我们需要发明新的语法?我的一个原因是我更喜欢这样写:
<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>';
};
{{title}}
{{body}}
在这上面写:
<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>';
};
var createEntryTemplate=函数(obj){
返回“”+
''+对象标题+''+
''+obj.body+
'' +
'';
};
后一种方法也更容易出错——如果不是对你来说,那么对另一个人来说可能更容易出错。想象一下,你正在与一位没有太多编程经验的设计师合作,他需要加入并替换大量HTML
哦,糟了…基本上,使用客户端模板引擎,在服务器端渲染和客户端执行之间进行交易,所以我想到了这些
- 赞成:您可能很容易节省大量带宽,因为原始数据通常比HTML呈现小得多
- 赞成:通过在客户机上进行渲染工作,可以轻松节省大量服务器CPU周期
- 赞成:客户可能对渲染限制(例如屏幕大小)有更多或更容易访问的知识
- 缺点:将渲染从已知的稳定环境移动到无法控制的移动目标
- 缺点:非交互式客户端(例如搜索引擎)不会看到您的最终渲染,从而使SEO、索引等变得困难