如何选择Javascript模板引擎(javascript template engine)?
随着前端开发的密集度越来越高,Ajax和JSON的使用越来越频繁,大家肯定免不了在前台开发中大量的使用标签,常见到的例子如下:
你的到了一个JSON对象,如下:
var data={ ? email: 'terry.li@gbin1.com, ? gender: 'male'? }
然后你需要将json数据组织成页面内容,如下:
var email, gender; email= '<div class="mail">' + data.email+ </div>'; gender= '<div class="gender">' + data.gender + </div>'; $('#contentwrapper‘).append(content).append(gender);
代码执行功能非常简单,将json数据生成web页面中的内容,如下:
<div class="mail">terry.li@gbin1.com</div>
<div class="gender">Male</div>
如果只是简单代码组合可能还好一些,但是如果页面大量使用类似的结构的话,除非一直是同一个程序员维护,否则后期的管理成本会相对非常的高。
为了解决这个问题, 我们通常会引入"javascript模板引擎概念“,提到模板,相信大家都不会陌生,如果你开发过服务器端程序,例如J2EE相关技术的话,肯定对于 Freemarker,sitemesh等模板类库非常熟悉,它能够有效的帮助你组织和维护代码结构,提高代码编写效率和降低维护成本。
目前开源的javascript模板引擎很多,抛给我们的问题是 - 如何选择一个js模板引擎?
为了更好的帮助大家辅助选择模板引擎,这里推荐一个不错的工具性网站:Template-engine-chooser?。
打开这个网站后,我们可以看到列出了比较常用的js模板引擎,例如,mustache.js,jQuery之父John 的micorotemplate.js,还有jQuery Tmpl的替代品 - jsrender等等。
在类库列表的左边是一系列的问题,如下:
- 模板需要在客户端使用还是服务器端?
- 逻辑复杂程度有多少?
- 是不是有运行速度要求?
- 是不是需要预定义的模板?
- 需要Partials支持吗?
- 需要DOM结构或者String字符串类型?
- 除了模板标签,是不是在渲染前后开发语言一致?
如果你也在寻找js模板的话,你肯定也有一些问题,或者就是上面列出的问题里。你只需要针对不同的问题回答:是或者不是,这个工具会自动选择合适的模板。
当然,这里的模板并不是很全,但是包含了比较知名的模板,希望以后它能够添加更多模板选择项。
希望大家喜欢这个工具!如果你有任何问题,请给我们留言!
?
来源:如何选择Javascript模板引擎(javascript template engine)?