大家都使用什么JavaScript模版引擎啊?
最近觉得代码中拼html的地方太多了,想用个JavaScript模版引擎,能说说大家都在用什么吗?顺便说下选择的原因就更好了
16 回复
好早有人对比过,可以在cnode搜索一下
DoT 规则简单。同时官网实例,可以实施验证语法
不用服务器端模板,只用浏览器端的 knockout.js
用过doT和artTemplate。一般就在这两个之间选择吧。。。
Handlebar也不错,ember.js就用到了这个
juicer 这个牛比。phoneqq.com 和 sogego.com 就是用的juicer. 速度极快
github: https://github.com/myworld4059/tmpl.js
被集成到Codekart框架中:https://github.com/myworld4059/Codekart
精简强大,全部代码如下:
module.exports = function (str, data) {
var $ = '$' + (+ new Date)
, fn = function (data) {
var i, variable = [$], value = [[]];
for (i in data) {
variable.push(i);
value.push(data[i]);
}
return (new Function(variable, fn.$))
.apply(data, value).join("");
};
//将模板解析成函数
fn.$ = fn.$ || $ + ".push('"
+ str.replace(/\\/g, "\\\\")
.replace(/[\r\t\n]/g, " ")
.split("[#").join("\t")
.replace(/((^|#])[^\t]*)'/g, "$1\r")
.replace(/\t=(.*?)#]/g, "',$1,'")
.split("\t").join("');")
.split("#]").join($ + ".push('")
.split("\r").join("\\'")
+ "');return " + $;
//如果未定义data则返回编译好的函数,使用时直接传入数据即可,
//省去每次解析成函数的时间
return data ? fn(data) : fn;
};
dust.js
珍爱生命,远离模板引擎。
之前没用Angularjs的时候用过jade做客户端模版,语法就是js,所以也没什么学习成本,也不需要其他api
+1
Yes, 正在用,主要是简单。
+1 类似twig和Jiajia2的语法,用起来很爽
@xieren58 看了下,貌似比swig功能强一些