當前位置:歷史故事大全網 - 故事大全 - vue,angular,avalon这三种MVVM框架之间有什么优缺点

vue,angular,avalon这三种MVVM框架之间有什么优缺点

作者:Tw93

来源:知乎

著作权归作者所有,转载请联系作者获得授权。

Vue.js

Vue.js @尤雨溪老师写的一个用于创建 web 交互界面的库,是一个专业的 MVVM。从技术角度讲,Vue.js 专注于 MVVM 模型的 ViewModel 层。它通过我们的数据绑 定把View层和Model层连接起来。实际的DOM封装和输出格式都被抽象为了Directives和Filters。Vue.js和其他库相比是一个小而美的库,作者的主要目的是通过一个简单的学习 的API产生可反映的数据绑定和可组合的视图组件,感觉作者的思路非常清晰。

优点:

简单:官方文档很清晰,比Angular简单易学 。

快速:异步批处理方式更新DOM。

组合:用解耦的、可复用的组件组合你的应用程序。

结构紧凑 :~18kb min+gzip,且无依赖。

丰富:表达式 & 消耗依赖的可推导属性(计算属性)。

对模块友好:可以通过 NPM、 Bower 或 Duo 安装,不强迫你所有的代码都遵循 Angular 的各种规定,使用场景更加灵活。

缺点:

新生儿:Vue.js 是一个新的 项目,2014年3月20日发布的0.10.0 Release Candidate版本,目前github上面最新的0.11.4版本,没有角度那么成熟。

影响程度不是很大:google这么说, 有关于Vue.js多样性或者说丰富性缺少其他一些有名的库。

不支持IE8:哈哈不过AngularJS 1.3也抛弃了对IE8的支持,但是@司徒正美老师的avalon是 IE6+的,应该下很多功夫去优化。这一点对于那些需要支持IE8的项目还不好支持,不过这也是web前端开发的一个趋势,像IE低版本就应该退出历史阶段了,通过改变我们 @玉伯老师说过一句话,我觉得说的非常好“这年头,支持IE6、7早就不再是特性了,而 真是耻辱。努力推动支付宝全面不支持IE6、7期待,更多兄弟加盟”。

AngularJS

AngularJS最近很火,追随者也很多。超级英雄的JavaScript MVW框架< /p>

官方表示朴素:“完全使用JavaScript编写的客户端技术。与其他历史悠久的Web技术(HTML、CSS和JavaScript)配合使用,使Web应用开发比以往更简单、更快捷 “。当你学习它的时候,我相信你会被它带来很多新的吸引力。

优点:

动态视图:以前从来没有过这样的扩展 HTML的属性,但是AngularJs做到了,它替我们静态的HTML增加了很多扩展性功能,有一种让HTML由死变活的感觉。

完善:是一个比较完善的推广MVW框架 ,包含模板,数据端口绑定,路由,自定义,服务,依赖注入等所有功能,模板功能强大丰富,并且是声明式的,附带了丰富的 Angular 指令。

Google 维护 :AngularJS有Google来维护,无疑产生了一个强大的后台,对于推广和维护明显比Vue.js和avalon有优势,社区也非常活跃,能够很好的促进它的发展。

AngularJS & Ionic:Ionic: Advanced HTML5 Hybrid Mobile App Framework,这俩就是一个好基友,Ionic通过用AngularJS来创建一个框架,最适合开发丰富而强大的应用程序。最后 于知乎回答了一个相关问题做webapp开发,性能和效率最好的框架和备份应用平台分别是哪个? - 汤威的回答,详细可以见这里。

缺点:

大而全:学习起来有索引,对于我来说学习曲线很曲折,比较难理解一些。

替换替换:前段时候逛社区发现AngularJS2.0换成之前的 替换重写,两个框架的改变很大,基本就是两个框架了,同样是说等到2.0出来后又需要从头开始,不过又说回来,@徐飞老师的[翻译]有关Angular 2.0的一切· Issue #8 · xufei/blog · GitHub这篇文章很好说明了AngularJS2.0的变化。

不支持IE8以下,黑暗2.0网格只支持移动端了,等到出来后再看吧 。

Avalon.js

Avalon.js是@司徒正美老师所写的一个简单的难度迷你的MVVM框架,它首先发布于2012.09.15,为解决同一业务 逻辑存在各种视图呈现和开发的。经常可以看到老师推广他的 Avalon.js,产生了很多教程,无疑为国内学习 Avalon.js 的人提供了巨大的方便。

优点

使用简单,在HTML中添加绑定,在JS中用avalon.define定义ViewModel,再调用avalon.scan方法,就可以动了!

兼容到IE6 ( 其他MVVM框架,KnockoutJS(IE6), AngularJS(IE9), EmberJS(IE8), WinJS(IE9) ),还有avalon.mobile,它可以在IE10等新版本浏览器中更高效地运行

< p>没有任何依赖,小于5000行,压缩后小于50KiB

支持管道符风格的过滤函数,方便输出格式化

局部刷新的颗粒度已细化 到一个文本节点,特性节点

要操作的节点,在第一次扫描时就与视图刷新函数相绑定,并存储起来,因此没有选择器退出的余地。

< p>让DOM操作的代码近乎绝迹

使用类似CSS的重叠覆盖,让各个ViewModel轮换机制渲染页面

节点移除时,智能卸载对应的视图刷新 函数,节省内存

操作数据即操作DOM,对ViewModel的操作都会同步到View与Model去

自带AMD模块加载器,省得与其他加载器进行集成。

缺点

缺点可以看这里相比Angular,Avalon有什么缺点呢? - 司徒正美的回答

终于回答完了,还有一些我没有 找到还有希望指出大家的错误。

  • 上一篇:存款準備金率的調整趨勢
  • 下一篇:舞蹈工作室創業計劃書怎麽寫(2)
  • copyright 2024歷史故事大全網