大家好,欢迎来到IT知识分享网。
MVVM框架对比
后端因为发展比较迅速,框架的更新迭代也比较快,从最初的backbone.js到后来的Ember、Knockout、Angular.js,再到如今的Vue.js、React。
MVC和MVP简介
通讯方法如下:
view传送指令到controllercontroller完成业务逻辑后,model改变状态model将新的数据发送到view,用户得到反馈MVC在后端中的典型实践Backbone
MVP
各部份之间的通讯,都是单向的。view与model不发生联系,都通过presenter传递。view特别薄,不布署任何业务逻辑,被称为被动视图,所有逻辑都布署在Presenter。MVVM
每一个框架的诞生都是为了解决客观存在的问题,所以构架是对客观不足的妥协。
这么如此多MVVM框架的诞生是为了解决哪些问题?Vue.js、Angular、Ember、Backbone对比功能
作为建立应用的基础,框架必须具备一些重要的功能,例如,视图绑定、双向绑定、筛选、可估算属性、脏属性、表单验证等等
功能VueAngularBackboneEmber
可观察对象(observable)
路由(routing)
视图绑定(viewbinding)
单向绑定(twowaybinding)
部份视图(partialview)
筛选列表视图(filteredlistview)
灵活性
有时侯,框架配合一些现成的插件和库来使用,可能要比使用框架原生同类功能疗效更好,而这些插件和库几乎满地都是(不下数百个),又各有特色。为此,才能把这种库和插件整合到MVC框架中也特别重要。
Backbone是其中最灵活的一个框架,由于它的约定和主张最少。使用Backbone须要你自己做出好多决定。
Ember、Angular、Vue.js也都还算灵活,可有时侯你会发觉,即使不喜欢它们的个别实现方式,你也只能默默忍受。这是在选择Ember或Angular时必须考虑的。
上手难度
Vue.js
上手比较容易,官方文档比较清晰。专注于MVVM的ViewModel层,实际的DOM封装和输出格式都被具象为了Directives和Filters。
Angular4.0
一开始会让人大呼过瘾,由于可以借助它干很多意想不到的事,并且学习难度不高。乍一看让人感觉很简单。而且,进了门以后,你会发觉旁边的路还很长。应当说这个框架比较复杂,但是有不少标新立异之处。想看着它的文档上手并不现实,由于Angular制造的概念好多,而文档中的反例又甚少。
Backbone
Backbone的基本概念十分容易理解。但很快你会发觉它对如何更好地组织代码并没有太多主张。因此,你得观摩或阅读一些教程,能够晓得在Backbone中如何编码最好。并且,你会发觉在有了Backbone的基础上,还得再找一个库(例如Marionette或Thorax)跟它配合能够得心应手。正由于这般,我不觉得Backbone是个容易上手的框架。
Ember
Ember的上手难度与Angular有一拼,我觉得学习Ember比学习Angular总体上容易一些,但它要求你一开始就要先搞清一批基本概念。而Angular呢,一开始不须要如此费力也能做一些让人激动不已的事儿。Ember缺乏这些前期激动点。
社区支持
能轻易找到参考资料和专家帮忙吗?
Backbone的社区很大,这是人所共知的事实。关于Backbone的教程也几乎汗牛充栋,StackOverflow和IRC社区十分热闹。
Angular和Ember社区也相当大,教程哪些的同样不少,StackOverflow和IRC也很热闹,但还是比不上Backbone。
Vue的社区比较通常,可能是因为框架还处于发展阶段,还未达到上述几个框架的稳定和成熟。
有没有插件或库构成的生态系统?
Backbone的选择是最多的,可用插件俯拾皆是,这一点让其他框架都望尘莫及。Angular的生态圈加上AngularUI还是很令人瞩目的。我认为Ember的下游生态其实欠发达,但Ember本身很受欢迎,所以前景非常豁达。
文件大小
Vue和Angular是唯二不须要其他库能够使用的,其他几个框架都须要依赖。
Backbone起码须要Underscore和Zepto。其实在Underscore中可以使用最小的模板来渲染视图,但多数情况下,还要利用更好的模板引擎,例如Mustache。
Ember须要jQuery和Handlebars。
VueAngularBackboneEmber
18kb
80kb
61kb
269kb
成熟度
这个框架成熟吗,经过实际检验了吗,有多少网站在用它呢?
使用Backbone的网站不计其数。近来三年,它的核心代码没怎样改过,这是成熟的一个重要标志。
Ember早已不是新框架了,但它的重大变更还是常常有,前几月刚才稳定出来。因而,目前还不能说它是个成熟的框架。
Angular其实比Ember更稳定,验证的示例也更多,但不能与Backbone相提并论。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/87230.html