参考https://blog.fundebug.com/2018/07/09/react_vs_angular_vue/
Angular 5
Angular是一个从2009年就开始推出JavaScript MVVM 框架
优点
- 新特性:RXJS(是一种针对异步数据流编程工具,或者叫响应式扩展编程;Angular引入RxJS为了就是让异步可控、更简单),Angular 5还可以快速编译(3秒内),有新的HttpClient;
- 详细的文档几乎涵盖了所有必须的信息,便于学习;
- 数据双向绑定,可以减少出错的风险;
- MVVM(
Model-View-ViewModel
),View的变化会自动更新到 ViewModel,ViewModel的变化也会自动同步到View上显示(自动同步是因为ViewModel的属性中实现了Observer,当属性变更时能触发相应的操作
)使得开发者可以针对同一个App模块同时开发; - 依赖注入使得模块化和模块中组件引入更加方便;
缺点
- 语法比较复杂;好在Angular 5使用TypeScript 2.4,已经简化了很多
- 迁移问题:从低版本升级到新版本的时候,不兼容导致迁移成本高。
适用情况
由于Angular使用的是TypeScript,因此它更适合于单页Web应用,应用程序体积较大,而且有着未来的扩展计划的也适用Angular
ReactJS
ReactJS是一个Facebook在2013年开源的JavaScript库
优点
- 易于学习:由于语法十分简洁
- 组件化程度高具有高度的灵活性;
- 虚拟DOM将HTML,XHTML、或则XML的文档格式化成树形结构,这样浏览器可以更容易理解;
- 结合ES6/7,React可以很容易写出各种酷炫代码;
- Downward数据绑定,单向数据流,父节点的数据不会受到孩子节点的影响;
- 100%的开源,每天都有来自全世界无数的开发者的更新和改进;
- 绝对的轻量级,因为数据处理既可以在用户端,也可以在服务端;
- 版本迁移非常容易,Facebook提供了”codemods”来自动化这一过程。
缺点
- 缺乏官方文档:ReactJS的快速开发使得文档的缺乏,众多开发者的维护也使其缺乏一个系统化的思路;
- React因为太灵活增加了决策成本而不好使;
- 需要很长的时间去掌握,因为ReactJS需要你对如何将UI和MVC框架整合有一个足够深度的理解。
适用情况
适用于对于灵活性要求胜过功能性项目,适合熟悉JavaScript的开发者,可以用来开发应用程序体积较大,而且有着未来的扩展计划的项目
Vue.js
Vue.js是一个2013年诞生的前端框架
优点
- 强化的HTML,有着很多和Angular相似的特点。
- 有详细的文档
- 可适用性:它和Angular以及React都有一定的相似性;
- 非常棒的整合性:Vue.js可以同时用于单页面应用和更加复杂的网页应用。可以用它编写很小的可交互部件,可以很容易地整合到现有的项目中而不会影响到整个系统;
- 可扩展性:Vue.js可以用于快速开发大型复用模板;
- 体积小:Vue.js只有20KB左右的大小,使得其速度和灵活性相对于其它框架都好很多。
- 代码整洁性好
- Vue提供了最简单的学习曲线,因此它是初学者的理想选择
缺点
- 资源匮乏:Vue.js依然在整个市场中只占有很小的比例,所以相应的资源、知识要少很多;
- 灵活性带来的风险:有时候,将其整合到大型项目的时候会有一些问题,但是你不见得能够找到解法;
适用情况
非常适合用于构架非常灵活的UI和复杂的单页面应用,适合小团队和小项目
网友评论