angular 和 backbone 区别

参考:http://angularjs.cn/A0cV;html

 

Backbone的Model把服务器端的数据模型映射到浏览器端,绑定数据验证机制,并与相应的REST操做绑定,这样每一个数据模型都变成了独立体,方便REST操做,却限制REST的灵活性。好比我要将10个todo批量标记成已完成,它会发出10个REST请求。程序员

Backbone的Model没有与UI视图数据绑定,而是须要在View中自行操做DOM来更新或读取UI数据,这点很奇怪。AngularJS与此相反,Model直接与UI视图绑定,Model与UI视图的关系,经过directive封装,AngularJS内置的通用directive,就能实现大部分操做了,也就是说,基本没必要关心Model与UI视图的关系,直接操做Model就好了,UI视图自动更新。而Model数据验证、与服务器端的数据交互都是很是简单而自由的。angularjs

AngularJS的directive,你输入特定数据,他就能输出相应UI视图,这样的directive能够变成了一个html通用组件,好比文章编辑器组件、分页导航组件、madal组件等,在不一样应用中能够直接拿来用,减小重复开发。我想,Backbone大概很难实现这样的通用组件。浏览器

Backbone的View没有把html与JavaScript解耦,要控制UI视图,实际上就是用JavaScript控制DOM,或者经过第三方模板引擎控制HTML字符串,而这些,都须要程序员在代码中用JavaScript自行实现。服务器

AngularJS不一样,写UI视图就是写正常的HTML/CSS,写逻辑控制代码就是用JavaScript操控数据(不是DOM),不一样的就是增长了directive,实现DOM与数据的互动,如上所述,directive是通用组件。AngularJS只是定义了一个环境和一个数据与视图交互的机制,并提供了若干通用组件和服务,因此AngularJS开发很简单,很高效,很“原生态”。编辑器

虽然我没有真正写过桌面应用程序,但我以为AngularJS的理念就是把WEB看成应用程序来写——Web App。反观Backbone,对于数据与UI视图的互动并无大的改进,仅仅提供了数据变动事件通知,它侧重于REST数据交互了,而REST数据交互原本是很容易处理的。spa

 

之因此彻底粘贴下来我只是想本身在理解理解,忘做者见谅,不要笑我。htm

相关文章
相关标签/搜索