JavaScript 如何选择 JavaScript 模板?

diguage · 2015年01月23日 · 最后由 w7938940 回复于 2015年05月29日 · 3099 次阅读

背景介绍

最近做一个项目,后台查询页面需要用 Ajax 请求,然后再展示出来。现在展示时,我直接用 JavaScript 拼接带标签的字符串来完成的。

随着对项目美观以及可用性要求的提高,字符串拼接方式越来越麻烦。而且,这种方式太 Low,木有美感!

就在昨天晚上,突然先到了 JavaScript 模板。我觉得这个东西能解决我的问题。然后,查了查资料,妥妥的…

背景介绍到此为止。

可选项目

上网一次,我了个擦,有如此多的可选项目。列表如下:

  1. BaiduTemplate--百度出品。
  2. artTemplate--腾讯出品。
  3. Juicer--淘宝出品。
  4. doT
  5. jquery-tmpl
  6. Handlebars.js
  7. easyTemplate
  8. Underscore.js
  9. mustache.js
  10. kissy

还有很多,这里就不一一列举了。

最后一击

看到这么多可选项,心里就一句话: ** 我了个擦,这么多,怎么选啊?**

我需要的功能:支持循环,这个是最基本的;支持子模板;最好能支持自定义选择函数(比如,我要选列表中最大的。)这个场景,怎么选?

想听听大家都选了哪个模板?以及选择原因。

参考资料

Underscore.js 用的多一点吧

以前试过一圈, doT很快, Mustache Handlebars 表达能力很强, 用得人非常多, jquery-tmpl 轻量级.

其他算了吧

想太多了。underscore 最简单,但没有什么做不到的,只要你会写 Javascript。

jade 其实很好

directive - angular html5 template - polyfill - polymer

用 coffeescript 就可以了

国外的,在这里选 http://garann.github.io/template-chooser/

国内几家,看看活跃状态就知道选哪个了。另外不要在乎性能对比,没意义。

求,哪个更接近 erb?

http://ectjs.com 号称什么 Excellent performance,Fastest ... 复杂的 template 可以用 ect. 简单些的可以用 underscore.js 再简单的可以用 coffeescript 字符串内插, 比 js 拼接字符串方便一些。

#7 楼 @nightire 这个网站,我在查资料的时候,也看到了,在页面点吧点吧没反应,后来去看了看 Github 的 Repo 页面,说不再维护,以为不能用了。 今天看到,以为是个新网址,又打开看了看,我了去啊,竟然可以用了,爽!(这次是正在翻墙,估计第一次打开的时候,是什么 JS 库被墙了。)

#9 楼 @gihnius 确实比字符串拼接方便太多了。第一次使用 JS 模板,很爽很方便。

#11 楼 @diguage 我现在的项目里的 Ajax 请求返回数据有两种做法,第一种是 render partial: "xxx", 然后用 JS 把这段 HTML 放到某个元素中,第二种做法是返会 Json 数据,然后用 JS 拼接成 HTML,这两种做法那个比较好。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号