大家都使用什么JavaScript模版引擎啊?
发布于 11 年前 作者 DolphinX 8049 次浏览 最后一次编辑是 8 年前

最近觉得代码中拼html的地方太多了,想用个JavaScript模版引擎,能说说大家都在用什么吗?顺便说下选择的原因就更好了

16 回复

好早有人对比过,可以在cnode搜索一下

DoT 规则简单。同时官网实例,可以实施验证语法

不用服务器端模板,只用浏览器端的 knockout.js

用过doT和artTemplate。一般就在这两个之间选择吧。。。

Handlebar也不错,ember.js就用到了这个

juicer 这个牛比。phoneqq.comsogego.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;
};

珍爱生命,远离模板引擎。

之前没用Angularjs的时候用过jade做客户端模版,语法就是js,所以也没什么学习成本,也不需要其他api

@xieren58

和 swig 很象。内置函数(filter functions)多了好多。

marked

Yes, 正在用,主要是简单。

+1 类似twig和Jiajia2的语法,用起来很爽

@xieren58 看了下,貌似比swig功能强一些

回到顶部