阅读 6909

探索Angular,React,Vue的2019年趋势比较

小啰嗦

笔者从15年初识用node.js搭建Web前端,后又因老东家接了一些国内的外包项目,慢慢偏向了移动端。16年初有幸通过带我的技术大佬,偶然接触了前端框架并在公司推广那时候发展最成熟的Angular。对于我们这种从Web服务端搬迁过来做移动端的来说,Angular这个成熟的框架确实拯救了我们。以至于现在,我都对它有一种情有独钟的念念不舍。

今年年初刚从上海搬到杭州这边的时候尤其不适应,因为我发现杭州这边普遍是用React,Vue,包括现在的新东家也是React。迫于现实,为了能在杭州找到一份自己还算满意的工作,着实好好恶补了一番。在新东家实际投入使用React已经近一个月了,现在才开始动笔记录整理一些。

惶恐开篇

前端的知识点涉及范围之广,迭代更新之快,往往打得我们措手不及。它不像后端Java,要求研发人员掌握核心底层、算法永恒经典。为了不掉队,我们需要时刻保持低调学习的探索精神,时刻把自己当成一个产品经理,贴近客户、市场需求,用我们的技术去驱动前端的优化。

本文主要搜集了一波各大平台关于前端技术框架Angular(Google团队维护)、React(Facebook团队维护)、Vue(前Google员工主维护)趋势的数据,在此基础上,笔者斗胆总结预测了几点。

Angular, React, Vue背景介绍

首先,Angular是三大框架里最早针对页面性能问题提出的优化探索,并在2010年由Google对外发布。Google团队还是很有远见的,也在业界掀起了一阵热潮,react,vue后面相继出现。然而Angular由于最早开始,那时候移动端还没有兴起,一开始定位的Web端有些不适应后来的移动端趋势,导致后面有个大的版本迭代。Angular团队在保持性能优化的核心方案的同时,适应移动端化、组件化的大热潮流,2016年推出了Angular2。并且官方团队在2018年将AngularJS宣布将进行LTS长期维护时间,以后将不再提供支持和更新。虽然目前很多团队的应用还是基于AngularJS,官方也建议尽快迁移。

React由Facebook在2013年正式对外发布,并一直由Facebook团队负责维护和推广。在 Chris Cordle 这篇文章的统计中,React 在 Facebook 上的使用远远多于 Angular 在 Google 上的使用。React 还被 Airbnb,Uber,Netflix,Twitter,Pinterest,Reddit,Udemy,Wix,Paypal,Imgur,Feedly,Stripe,Tumblr,Walmart 等使用(根据 Facebook, stacksharelibscore.com 提供的数据)。

Vue是 2016 年发展最为迅速的 JS 框架之一。2014 年 由Google 前员工 Evan You 发布。就这样核心开发几十个人的团队,能得到这么多关注无疑是非常成功了。目前,Vue 被阿里巴巴,百度,Expedia,任天堂,GitLab 使用 — 可以在 madewithvuejs.com 找到一些小型项目的列表。

Angular 和 Vue 都遵守 MIT license 许可,而 React 遵守 BSD3-license 许可证。个人觉得Facebook 2017年的这个决策将很大程度上影响它的市场占有率,毕竟还是有很多公司介意专利授权这件事的。即便Facebook已经做出声明。在Facebook团队发布15.6.2版本(BSD license)之后,Facebook迫于社区的抵制,以及各个公司、平台的撤销的压力,专门修改了React的license问题,github issue请参考这里官方详细声明请参考这里(非常感谢Set同学的指正)

热搜趋势

Google趋势

Google是国际上通用的主流搜索引擎,首先让我们看看来自于全球范围内,近一年(20180630-20190630),Google趋势中有关React、Angular和Vue.js的对比。(由于各种名称和版本,这里选择近似的方法“互联网与电信”类别中的搜索。)



可以看到,在市场份额这块儿,react后来居上,angular其次,vue这个新贵目前所占还是偏少。根据stackoverflow(一个IT界比较权威的问答网站)2018年调查,知道angular的人占36.9%,27.8%的人了解React,几乎没人知道Vue。所以目前开发人员中的主流还是Angular和React。

百度指数

笔者认为对于咱们国内行情,google统计的可能不如百度来的更精确点。(额,你懂的)


这里可以看出,在国内,Vue的新潮不是空穴来风,它的热搜量还是稳居第一并继续持续提升的趋势。React, Angular都相对平缓。

技术人员的跟随趋势

Github统计

Github是世界领先的软件开发平台,大量的全球开发者都在上面开源进行技术交流。所以,笔者这里自己统计了截止到2019年6月29日的angular, react, vue的官方维护仓库地址的相关:



由图可见,在Github Star方面,React, Vue势头正兴,Angular已近乎平缓。Angular, React在开发维护人员上面,由于Google, Facebook极力推广且其本身自有一套复杂的流程,追随其后的开发者们不少。这一点,Vue就相对偏低了。但也不排除Vue是由于其简单的开发成本,不需要太多人来维护。

NPM趋势预测

目前世界上最大的开源库集合,NPM,凭借着拥有超过836,000个可用的开源库吸引了更多的js开发者。使用这三种框架开发的应用,最终输出都是javascript跑在浏览器。虽然Angular最早拥抱了Typescript这个JS超集,但编译之后,依旧是输出JS。

那么这些开发者在NPM上对这三种框架是怎么选择的呢?



可以看到,React虽然市场份额占最大,但目前发展趋势已减缓。Angular依旧保持平缓状态。Vue虽然市场份额小,但涨势迅猛。

一点小结和预测

笔者做这个趋势探索整理,并不是真的为了区分哪个框架好,哪个框架还欠缺。而是通过这样的探索,我们可以大概了解现在市场行情。从而提醒自己,作为前端,你需要有这个敏锐的嗅觉,保持警惕,跟上学习潮流。而不至于要换工作时,像笔者这样仓皇去恶补。。。

1. 从市场份额来看,React目前依旧占大额,但以后说不好,毕竟有个BSD license的问题争论。(很多公司和个人都已经迁移,因为目前Facebook旗下很多开源项目还都是BSD, 不确定哪天Facebook又把React切换回BSD。) Angular的趋势平缓,且有Google团队的支持,应该以后依旧会保持着现有的状态。Vue新贵虽然目前市场份额不大,但是发展趋势很迅猛,且跟多家大平台合作,在国内的资讯、媒体、社区都很活跃,所以发展前景还是可观的。

2. 从社区支持来看,前面已经说过,Facebook支持着React,而Google支持着Angular,因此这两种框架的增长是毋庸置疑的。它们能够持续得到更新与发布,在碰到迁移时也有着很好的维护与支持。React和Angular的开发人员都声称:升级不是问题,他们会每六个月发布一次主要更新。

另外,由于Angular是一个完备的框架,而React是一组更独立、更快捷、且不断改进的库,因此React比Angular更灵活。不过,您也必须关注那些可能不再被支持或维护的小模块。

而Vue这方面更缺失,没有一个明确的长远版本规划的路线图。

3. 从框架、库角度来说,Angular是一个完备的框架,您不必查看各种库、路由方案和其具体结构,就能快速地开始构建。虽然Angualr4系列之后也在逐步减重,但不得不说,相比较React和Vue相对来说,还是厚重一些。React可以集成很多库来无缝连接搭建应用,但也因此导致React出错率和依赖性都偏高一些。Vue则是平衡了内部依赖和灵活性这块儿,所以相对来说轻而方便使用。

4. 从学习曲线来看,Angular和React都有自己的一套,尤其Angular还有依赖注入的层次结构概念,很多都自己集成了,学习成本偏高。从这点来说,Vue的门槛真的很低。难怪现在很多公司偏向Vue, 人力成本低。

随着微应用和微服务的兴起,React和Vue的灵活性更适合开发。Angular更偏单页应用。但Angular是最早拥抱typescript的(在npm2018年的调研中,编译js方法里以46%的占比一跃成为第二,紧跟Babel之后),也是最早将RxJS思想贯彻到底的框架。个人建议,typescript学习起来,Angular+typescript还是不能抛弃,如果你还没有学习React,赶紧学起来。Vue学习成本偏低,且用的是最通用的js+html,指令式写法跟angular也类似,有时间可以练习一下。


参考链接

1. Google趋势: trends.google.com/trends

2. Baidu指数:index.baidu.com/v2/main/ind…

3. NPM发布对于2019年JS趋势的预测: img04.en25.com/Web/NPMInc/…

4. NPM趋势: www.npmtrends.com/angular-vs-…

5. Stackoverflow2018年社会调查: insights.stackoverflow.com/survey/2018…

6. Angular, React, Vue的全面比较指南: developer.51cto.com/art/201809/…


关注下面的标签,发现更多相似文章
评论