笔者从15年初识用node.js搭建Web前端,后又因老东家接了一些国内的外包项目,慢慢偏向了移动端。16年初有幸经过带个人技术大佬,偶然接触了前端框架并在公司推广那时候发展最成熟的Angular。对于咱们这种从Web服务端搬迁过来作移动端的来讲,Angular这个成熟的框架确实拯救了咱们。以致于如今,我都对它有一种情有独钟的念念不舍。javascript
今年年初刚从上海搬到杭州这边的时候尤为不适应,由于我发现杭州这边广泛是用React,Vue,包括如今的新东家也是React。迫于现实,为了能在杭州找到一份本身还算满意的工做,着实好好恶补了一番。在新东家实际投入使用React已经近一个月了,如今才开始动笔记录整理一些。html
前端的知识点涉及范围之广,迭代更新之快,每每打得咱们措手不及。它不像后端Java,要求研发人员掌握核心底层、算法永恒经典。为了避免掉队,咱们须要时刻保持低调学习的探索精神,时刻把本身当成一个产品经理,贴近客户、市场需求,用咱们的技术去驱动前端的优化。前端
本文主要搜集了一波各大平台关于前端技术框架Angular(Google团队维护)、React(Facebook团队维护)、Vue(前Google员工主维护)趋势的数据,在此基础上,笔者斗胆总结预测了几点。vue
首先,Angular是三大框架里最先针对页面性能问题提出的优化探索,并在2010年由Google对外发布。Google团队仍是颇有远见的,也在业界掀起了一阵热潮,react,vue后面相继出现。然而Angular因为最先开始,那时候移动端尚未兴起,一开始定位的Web端有些不适应后来的移动端趋势,致使后面有个大的版本迭代。Angular团队在保持性能优化的核心方案的同时,适应移动端化、组件化的大热潮流,2016年推出了Angular2。而且官方团队在2018年将AngularJS宣布将进行LTS长期维护时间,之后将再也不提供支持和更新。虽然目前不少团队的应用仍是基于AngularJS,官方也建议尽快迁移。
java
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, stackshare 和 libscore.com 提供的数据)。node
Vue是 2016 年发展最为迅速的 JS 框架之一。2014 年 由Google 前员工 Evan You 发布。就这样核心开发几十我的的团队,能获得这么多关注无疑是很是成功了。目前,Vue 被阿里巴巴,百度,Expedia,任天堂,GitLab 使用 — 能够在 madewithvuejs.com 找到一些小型项目的列表。react
Angular 和 Vue 都遵照 MIT license 许可,而 React 遵照 BSD3-license 许可证。我的以为Facebook 2017年的这个决策将很大程度上影响它的市场占有率,毕竟仍是有不少公司介意专利受权这件事的。即使Facebook已经作出声明。在Facebook团队发布15.6.2版本(BSD license)以后,Facebook迫于社区的抵制,以及各个公司、平台的撤销的压力,专门修改了React的license问题,github issue请参考这里,官方详细声明请参考这里(很是感谢Set同窗的指正)git
Google是国际上通用的主流搜索引擎,首先让咱们看看来自于全球范围内,近一年(20180630-20190630),Google趋势中有关React、Angular和Vue.js的对比。(因为各类名称和版本,这里选择近似的方法“互联网与电信”类别中的搜索。)github
能够看到,在市场份额这块儿,react后来居上,angular其次,vue这个新贵目前所占仍是偏少。根据stackoverflow(一个IT界比较权威的问答网站)2018年调查,知道angular的人占36.9%,27.8%的人了解React,几乎没人知道Vue。因此目前开发人员中的主流仍是Angular和React。web
笔者认为对于我们国内行情,google统计的可能不如百度来的更精确点。(额,你懂的)
这里能够看出,在国内,Vue的新潮不是空穴来风,它的热搜量仍是稳居第一并继续持续提高的趋势。React, Angular都相对平缓。
Github是世界领先的软件开发平台,大量的全球开发者都在上面开源进行技术交流。因此,笔者这里本身统计了截止到2019年6月29日的angular, react, vue的官方维护仓库地址的相关:
由图可见,在Github Star方面,React, Vue势头正兴,Angular已近乎平缓。Angular, React在开发维护人员上面,因为Google, Facebook极力推广且其自己自有一套复杂的流程,追随其后的开发者们很多。这一点,Vue就相对偏低了。但也不排除Vue是因为其简单的开发成本,不须要太多人来维护。
目前世界上最大的开源库集合,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/…