Vue.js 超越 React.js?勿以 star 数论高低!

上周在前端的 JavaScript 框架世界发生了一件称得上是“里程碑”的事:Vue.js 在 GitHub 上的 star 数量终于超过了 React.js 的 star 数量。前端


经过使用一个叫作 Star History 的工具,咱们能够清楚看到:React 长期以来的“历史主导地位”是如何慢慢被暴涨的 Vue 所超越。vue


一般状况下,当框架的流行度提升时,每每会引起大量关于哪一个框架“确实”更受欢迎、哪一个框架更强大以及其余方面的争论。react

项目的 star 数量 vs 实际使用状况

不要误解个人意思,我很喜欢 Vue —— 最近我使用它的频率远远超过了 React 的频率,但一个项目在 github 上的 star 数量更多的是衡量它的“流行”程度,而不是实际使用状况。下面举一个明显的例子,咱们拿比较流行的 Apache 服务器 httpd 和一个相对来讲意义没那么重大的 JavaScript 项目 colors.js 来对比:git


支持着 38% 互联网的 Web 服务器在 GitHub 上拥有 1766 个 star,而为 Node 控制台添加颜色的 JavaScript 库有 3206 个 star。

所以,为了更好地了解 Vue vs React 的相对流行度,咱们须要一些方法来衡量项目的实际使用状况。程序员

用项目在 NPM 的下载量做为实际使用状况的参考

没有存在完美的衡量手段 —— 由于安装和使用这些项目有不少种办法,之因此选择了 npm 做为参考是由于 npm 已经成为安装 JavaScript 包的事实标准。github

若是咱们查看每一个框架的核心软件包的下载统计数据 —— vue 软件包和 react 软件包,它们应该能反映出合理的实际使用状况。npm

为此,我使用了一个名为 npm-stat.com 的网站,经过该网站,你能生成可回溯到2015年2月的 NPM 软件包的历史下载图(这与 NPM 注册管理机构报告下载数据的时间相同)。服务器

由数据可知:React 仍然处于主导地位

纵观过去两年的数据,咱们能够看到,与 github 的 star 数造成鲜明对比的是,根据 NPM 软件包的下载量来衡量,React 仍然在实际使用方面占据主导地位。框架


这并非说 Vue 在被采用方面的数据表现不佳 —— 事实上,Vue 在这方面的倍数略有增长,从2016年6月大约 12:1 的比例(1.693M vs 141.5k)降低到2018年5月 7:1 的比例(9.388M vs 1.374M),二者的差距明显的缩小了。但在实际使用方面, React 仍然与 Vue 保持着巨大的差距。工具

添加 Angular 以进行综合对比

虽然上面的讨论主要集中在 React 和 Vue,但咱们仍是要看一下前端“三大”框架的其余成员,Angular。

因为 Angular 社区包含 “Angular.js” 和 “Angular” 这两个版本(Angular 2 及以后的版本都叫 Angular,使用 TypeScript 编写),所以将这两个都添加到咱们的比较中。

首先,就 github 的 star 数目来看:


咱们能够看到 Angular.js 与 React 和 Vue 相比曾一度处于领先的地位,但在2016年年中被 React 超越,而后2017年被 Vue 超越。第二个迭代版本 Angular 自2016年9月推出以来,它的 star 数目逐渐上升,如今也已经慢慢遇上了 Angular .js,但在受欢迎程度方面依然处于第四位。

Angular 的 NPM 下载状况

观察两个 Angular 版本的实际使用状况而不是 star 数目,咱们能够发现不同的东西。


‘angular’ 即 Angular.js,@angular/core 是 Angular

从使用方面来看,新版 Angular 在发布后当即从 Vue 和 Angular.js 中冒出来,从那时起一直保持领先地位,尽管远没有接近 React。

在此期间,Vue 在2016年9月的下载量约为 Angular.js 和 Angular 总和的 1/3,并于2018年5月达到 1/2,还超过了 Angular.js。

总结:React 仍处于主导地位,Vue 增加得愈来愈快

经过深刻了解 NPM 的下载统计数据,咱们发现尽管你们都围绕着 Vue 疯狂增加的 star 数来大肆宣传,但 React 仍然在 JavaScript 框架世界中稳坐“主导”的位置。它即将超过每个月1000万的巨大下载量,而且还一直保持着高速的增加。

但在过去的两年中,Vue 的增加速度比其余任何主流的 JavaScript 框架都快,最近遇上了 Angular.js,并逐渐缩小了它与 Angular 和 React 之间的差距。

为了学习工做与休闲娱乐互不冲突,现新建圈【码农茶水铺】用于程序员生活,爱好,交友,求职招聘,吐槽等话题交流,但愿各位大神工做之余到茶水铺来喝茶聊天。群号:582735936

相关文章
相关标签/搜索