如何选择Javascript模板引擎(javascript template engine)

如何选择Javascript模板引擎(javascript template engine)

随着前端开发的密集度越来越高,Ajax和JSON的使用越来越频繁,大家肯定免不了在前台开发中大量的使用标签,常见到的例子如下:

你得到了一个JSON对象,如下:
var data={
  email: '[email protected],
  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">[email protected]</div>
<div class="gender">Male</div>

如果只是简单代码组合可能还好一些,但是如果页面大量使用类似的结构的话,除非一直是同一个程序员维护,否则后期的管理成本会相对非常的高。

为了解决这个问题, 我们通常会引入"javascript模板引擎概念“,提到模板,相信大家都不会陌生,如果你开发过服务器端程序,例如J2EE相关技术的话,肯定对于Freemarker,sitemesh等模板类库非常熟悉,它能够有效的帮助你组织和维护代码结构,提高代码编写效率和降低维护成本。

目前开源的javascript模板引擎很多,抛给我们的问题是 - 如何选择一个js模板引擎?

为了更好的帮助大家辅助选择模板引擎,这里推荐一个不错的工具性网站:http://garann.github.io/template-chooser/

打开这个网站后,我们可以看到列出了比较常用的js模板引擎,例如,mustache.js,jQuery之父John 的micorotemplate.js,还有jQuery Tmpl的替代品 - jsrender等等。

在类库列表的左边是一系列的问题,如下:

模板需要在客户端使用还是服务器端?
逻辑复杂程度有多少?
是不是有运行速度要求?
是不是需要预定义的模板?
需要Partials支持吗?
需要DOM结构或者String字符串类型?
除了模板标签,是不是在渲染前后开发语言一致?
如果你也在寻找js模板的话,你肯定也有一些问题,或者就是上面列出的问题里。你只需要针对不同的问题回答:是或者不是,这个工具会自动选择合适的模板。

当然,这里的模板并不是很全,但是包含了比较知名的模板,希望以后它能够添加更多模板选择项。

你可能感兴趣的:(JavaScript)