透过对Github,StackOverflow,YouTube等社区进行数据收集后可知,AngularJS在各大主流社区中都是最受欢迎的,Backbone.js与Ember.js则不相伯仲。本文将对当前三款流行的Web开发框架作个简单比较。 是否选择了合适的框架进行Web开发对项目是有重大影响的。我们都希望找到一个稳健的易维护的框架结构。接下来,我们一起来对当前三款流行Web开发框架作个简单比较认识。 初步认识 AngularJS诞生于2009年,是商业产品GetAngular的一部分。后来,GetAngular创造者之一的MisKoHevry对其进行精简,并随后获得了Google的大力支持,进而发展成今天的样子。Angular最独特最有创造性的特性莫过于是双向(two-way)数据绑定以及HTML扩展能力。 问世于2010年的Backone.js是一个轻量级的MVC框架,崇尚精简的团队对其青睐有加。Pinterest,Flixster,AirBNB等都是使用该框架进行开发的。 Ember的首个足迹印于2007年。刚开始时是作为SproutCore的MVC框架,之后被Sproutlt和Apple接手。Ember的重量级用户包括Yahoo,Groupon以及ZenDesk。 此外,是否具备一个完善的社区支援网络也是重要的考量因素。透过对Github,StackOverflow,YouTube等社区进行数据收集后可知,AngularJS在各大主流社区中都是最受欢迎的,Backbone.js与Ember.js则不相伯仲。 框架大小 页面的加载速度是网站受欢迎与否的重要因素。用户现在变得越来越缺乏耐心了,特别是在同类型网站之间进行选择时,哪个加载得更快或许就会先入为主了。因此,我们必须充分考虑这个需求,尽可能地为我们的页面进行瘦身提速。这里有两个考量因素:框架的大小和引导加载过程的快慢。 下表列出了这三个框架各自的净大小以及结合依赖物之后的大小(已压缩): 模板 Angular和Ember已包含各自的模板引擎,Backbone则需要用户自行选择。以下将结合HTML代码实例进行对比分析。 1.AngularJS Angular的模板引擎是使用表达式绑定的HTML格式,绑定格式是使用两对大括号: 2.Backbone.js Backbone可与很多其它第三方模板引擎进行整合,默认的选择是Underscore。如果你已经采用了Underscore,属于Backbone依赖之一的Undersocre无须额外的操作,我们便可使用它的模板引擎。美中不足的是该引擎功能较简单,我们通常需要加入其它的javascript代码来实现其它功能,例如下面的例子: 3.Ember.js Ember目前采用的模板引擎是属于Mustache模板引擎扩展的Handlebars。目前出现的一个新Handlebars变种名为HTMLBars。相对于Handlebars,HTMLBars增添了对DOM的支援,不过HTMLBars暂还没有正式推出。以下例子是基于Handlebars的: |