ReactJS vs Angular 5 vs Vue.js - 哪个框架更好?

译者按: 在全球大范围看,React 和 Angular 依然遥遥领先,Vue.js 这位后起之秀还需努力做到全球化!

本文采用意译,版权归原作者所有



前一阵子,我们写了一篇文章将 Angular 2 和 React 做了对比。在那篇文章中,我们列举了它们各自的优缺点,当时我们针对特定需求做适当选型也提供了建议。那么,2018 年又有什么新的变化呢?

JavaScript 框架的更新节奏可以说日新月异,我们可以看到 Angular 不停地在发布新的版本,ReactJS 和 Vue.js 也不甘落后。我们来看看最近 5 年 Google 的搜索趋势。图中蓝色、红色和黄色分别表示 Angular、React 和 Vue.js。

在 2013-2014 年间,React 和 Angular 的热度略微有些许差别。之后,它们之间的差距逐渐拉大。从 2016 年中期开始,React 开始增长,逐渐接近 Angular 的热度。Vue.js 框架一直处于垫底状态,不是很流行。不过呢,也有逐渐转热的趋势,我相信它会越来越热门。



总的来说,React 和 Angular 一直保持着相对一致的发展步调。如果要我尝试做个预测,那么 React 会持续升高,Angular 有所下滑。Vue.js 依然不是很明晰,不过由于其框架的简洁性,发展也不错。

我们同时也分析了世界范围内前端招聘对框架要求的数据。我们从Indeed.com获得超过 60,000 工作信息,得到如下的分布图。



根据我们的分析,我们决定分享我们对每一个框架的优点和缺点的理解,希望可以帮助专业人士或则工程师做框架选型。

Angular 5

Angular 是一个从 2009 年就开始推出 JavaScript MVVM 框架,对于构建高度可交互的网页应用非常方便。

优点

  • 新特性:RXJS,快速编译(3 秒内),新的 HttpClient;
  • 详细的文档几乎涵盖了所有必须的信息,你甚至不需要向同事咨询。不过,你需要更多的时间去学习;
  • 数据双向绑定,可以减少出错的风险;
  • MVVM(Model-View-ViewModel)使得开发者可以针对同一个 App 模块同时开发;
  • 依赖注入使得模块化和模块中组件引入更加方便;

缺点

  • 与生俱来的复杂的语法;好在 Angular 5 使用 TypeScript 2.4,已经简单多了;
  • 迁移问题:从低版本升级到新版本的时候,不兼容导致迁移成本高。

使用 Angular 5 的公司:Upwork, Freelancer, Udemy, YouTube, Paypal, Nike, Google, Telegram, Weather, iStockphoto, AWS, Crunchbase。

ReactJS

ReactJS 是一个 Facebook 在 2013 年开源的 JavaScript 库,可以非常方便地构建大型网页应用。

优点

  • 易于学习:由于语法十分简洁,和 Angular 相比,React 要容易得多。工程师只需要重温一下 HTML 的基本知识就足够。根本不需要像 Angular 一样,还要深度学习 TypeScript。
  • 高度的灵活性;
  • 虚拟 DOM 将 HTML,XHTML、或则 XML 的文档格式化成树形结构,这样浏览器可以更容易理解;
  • 结合 ES6/7,React 可以很容易写出各种酷炫代码;
  • Downward 数据绑定,也就是说父节点的数据不会受到孩子节点的影响;
  • 100%的开源,每天都有来自全世界无数的开发者的更新和改进;
  • 绝对的轻量级,因为数据处理既可以在用户端,也可以在服务端;
  • 版本迁移非常容易,Facebook 提供了”codemods”来自动化这一过程。

缺点

  • 缺乏官方文档:ReactJS 的快速开发使得文档的缺乏,众多开发者的维护也使其缺乏一个系统化的思路;
  • React 因为太灵活增加了决策成本而不好使;
  • 需要很长的时间去掌握,因为 ReactJS 需要你对如何将 UI 和 MVC 框架整合有一个足够深度的理解。

使用 ReactJS 的公司: Facebook, Instagram, Netflix, New York Times, Yahoo, Khan Academy, Whatsapp, Codecademy, Dropbox, Airbnb, Asana, Atlassian, Intercom, Microsoft。

Vue.js

Vue.js 是一个 2013 年诞生的前端框架,非常适合用于构架非常灵活的 UI 和复杂的单页面应用。

优点

  • 强化的 HTML,也就是说 Vue.js 有着很多和 Angular 相似的特点。
  • 详细的文档,Vue.js 有着超级友好的文档,开发者可以快速的学会,这将会节省很多时间;
  • 可适用性:你可以很快地从其它框架转移到 Vue.js,因为它和 Angular 以及 React 都有一定的相似性;
  • 非常棒的整合性:Vue.js 可以同时用于单页面应用和更加复杂的网页应用。主要在于你可以用它编写很小的可交互部件,然后可以很容易地整合到现有的项目中而不会影响到整个系统;
  • 可扩展性:Vue.js 可以用于快速开发大型复用模板;
  • 体积小:Vue.js 只有 20KB 左右的大小,使得其速度和灵活性相对于其它框架都好不少。

缺点

  • 资源匮乏:Vue.js 依然在整个市场中只占有很小的比例,所以相应的资源、知识要少很多;
  • 灵活性带来的风险:有时候,将其整合到大型项目的时候会有一些问题,但是你不见得能够找到解法;
  • 来自中国:许多的元素和描述依然使用中文。这对于开发中会引入一些复杂性,好在越来越多的相关资料已经被翻译成英文。

使用 Vue.js 的公司:小米, 阿里巴巴, WizzAir, EuroNews, Grammarly, Gitlab and Laracasts, Adobe, Behance, Codeship, Reuters。

结论

对于一个真正的工程师,选用什么框架并没有多大的区别,因为你只需要花时间去学习和熟悉它们。我们公司里面有精通 ReactJS 和 Angular2/4/5 的专家,Vue.js 也即将被列入。每一个框架都有各自的优点和缺点,所以主要是看自己的应用场景下哪个框架最适合。

关于Fundebug

Fundebug专注于JavaScript、微信小程序、支付宝小程序线上应用实时BUG监控。 自从2016年双十一正式上线,Fundebug累计处理了80亿+错误事件。欢迎大家免费试用

版权声明

转载时请注明作者 Fundebug以及本文地址:
https://blog.fundebug.com/2018/07/09/react_vs_angular_vue/

您的用户遇到BUG了吗?

体验Demo 免费使用