最近觉得代码中拼html的地方太多了,想用个JavaScript模版引擎,能说说大家都在用什么吗?顺便说下选择的原因就更好了
好早有人对比过,可以在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
我用 swig
http://paularmstrong.github.io/swig/docs/
+1
最近发现一个,https://github.com/jlongster/nunjucks
@xieren58
和 swig 很象。内置函数(filter functions)多了好多。
marked
Yes, 正在用,主要是简单。
+1 类似twig和Jiajia2的语法,用起来很爽
@xieren58 看了下,貌似比swig功能强一些
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
好早有人对比过,可以在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
精简强大,全部代码如下:
dust.js
珍爱生命,远离模板引擎。
之前没用Angularjs的时候用过jade做客户端模版,语法就是js,所以也没什么学习成本,也不需要其他api
我用 swig
http://paularmstrong.github.io/swig/docs/
+1
最近发现一个,https://github.com/jlongster/nunjucks
@xieren58
和 swig 很象。内置函数(filter functions)多了好多。
marked
Yes, 正在用,主要是简单。
+1 类似twig和Jiajia2的语法,用起来很爽
@xieren58 看了下,貌似比swig功能强一些