同作为JavaScript MVC框架,Backbone和AngularJS各有什么优缺点

2025-04-30 17:11:17
推荐回答(2个)
回答1:

AngularJS没有用过,但是用过Backbone,就我所用的感受说说吧!

Backbone将真个前端分层,分为模型层(含模型集合部分),控制层,展示层。

模型层:你可以想象成所有的数据都是用对象(模型包装),那么Backbone的模型都是为你所设计的数据对象服务,包括继承、字段读存、事件绑定、集合操作、远程数据绑定等等,具体请看API。该层对数据模型的支持比较强大,避免了从零开始造车轮。

控制层:该层提供便捷的事件支持,可以提供模型层数据变更的事件绑定,也可以提供展示层用户操作等事件的绑定,再由绑定的事件触发回调,完成控制操作。该层对事件的支持比较强大,也比较完善,支持“界面-模型”双向绑定。

展示层:Backbone对该层并没有提供什么实质的东西,更像是一个概念,由“模型-事件-表单元素”堆积成的控件可以构成该层的基本元素,但即使是基本元素,也都得自己从零开始造。因此Backbone提供的基础控件不足,她的核心也不在此吧!

虽然我本人未用到AngularJS,但是做过的Backbone项目中的其他同事还曾想引入AngularJS,因为想用到AngularJS里面的一些展示层控件,如分页控件、日期控件、文本控件等等。最终也是自己关门造车,使用Backbone制造车轮。

回答2:

Backbone是一个轻量级MVC框架。 支持单向数据绑定。(Model -> View)。 我们可以定义我们自己的视图、模型和控制器。简化DOM中的事件绑定。对象映射。但因为很轻量,所以灵活性好。通常你可以自由搭配组合各种js库进行定制开发。