JavaScript 年度调查报告:React、Vue和Angular 三分天下,谁将在 2018 年独占鳌头?

关键时刻,第一时间送达!

要论 2017 年最主流的三个 Web 前端框架,应莫过于 Angular、Vue 和 React 了。然而在实际应用中,这三个框架却不尽相同,对于规模不大的前端项目来说,Vue 因其极易上手会被列出首选之位,Angular 在快速开发大型 Web 项目上很受推崇,但仍存诸多缺陷,React 正为 JavaScript 应用开发者提供新的开发方式。因此,面对各有千秋的开发框架,作为一名开发者该如何选择?哪种框架更具有前景?

接下来,本文作者通过近日最新发布的 JavaScript 调查报告,分享其 15 年的 Web 开发经验,深度剖析前端框架的流行趋势及未来发展,希望给诸多前端开发者指明一些方向。

以下为译文:

其实在一年前,我的团队在重新项目时,采用了 Vue.js 而非 React,且当时的我还做了一番预测:

按照目前的发展速度,我预测 Vue 将在 16-24 个月内成为主要的 JS 框架,至少对于后端开发人员和小团队的前端人员来说是这样。当然,在 2017 年,如果 React 依然按照目前的速度不断提升自己的话,那么它将仍然会在 2017 年占据前端框架的主导地位。

——2016 年 12 月 10 日

如今,从最近的一份来自 stateofjs.com 网站、且超过 23,000 名开发者参与的关于 JavaScript 的调查报告来看,事实的确如此。

Stateofjs 2017 前端框架调查结果

与日常一样,使用 JavaScript 编程语言的核心区别是由前端框架引起的。从调查报告来看,相比 Angular 和 Vue, React 是 2017 年的主要 JavaScript 框架,尤其是 React Native 以前所未有的速度提升自己。同时因为 Angular 的流行度下滑,Vue 也受到越来越多的欢迎。

相较于 Stateofjs 发布的 2016 年前端框架调查结果:

基于以上,通过将 2017 与 2016 年的统计结果进行对比可以发现,在过去一年里 Vue.js 是大家最想学习的框架,因此我个人预测明年将是 Vue.js 成功的一年,当然 React 增长很稳定,而 Angular 将无法跟上这两个对手的脚步。2016 年时,Vue.js 被称为“另一个 JS 框架”,当时它是一匹十足的黑马,而 React 占据主导地位,Angular 则是开发者的第二选择。

但是,Vue.js 只会在 Web 前端中占据主导地位,而不会统治所有的前端领域。React 则可以在所有的前端领域中盛行。这是为什么呢?下面,我们将揭开谜底。

React 统治前端领域的关键因素

答案就在 Stateofjs.com 发布的 2017 年移动和桌面应用前端框架的调查结果之中:

Synergy 是 React 能够统治所有前端领域的关键。

React Native

Vue.js 未能提供替代 React Native 的可行性方案(Weex 和 Quasar 太年轻,存在碎片化并且很脆弱),伴随着 React Native 和 React.js 的爆发式增长,如果你掌握了 Web 前端的 React 和 Redux ,你将获得极大优势:只要你想,便可在几周内熟练地将 React Native 应用到移动端。在这一点上,React 充分展示了它相比 Cordova 和其他 Hybrid 技术的优势。

如今最火热的前端需求在于移动端,而不再是 Web 。React Native 非常成功,同时它也会带动 React.js 的发展。

我们团队计划在 2018 年第一季度发布自己 iOS 和 Android App 的一个大版本,将公司的网站从零开始改写(研发代号 Q3,采用 Vue.js 和 Yii2),而新的 App 基于 React Native 开发。

其实,我们在一两年前就考虑使用 React Native 来改写我们的 App ,但当时我们团队的 Swift 开发者表示拒绝,如今看来这个决定是正确的,因为有时候我们需要等待技术成熟,这非常重要。如今我们结束了用 Swift 开发 iOS 应用 ,用 Java 开发 Android 程序的局面,避免了不同操作系统 App 使用不同开发语言的痛苦。

现在我们的 Swift 开发人员正在使用 React Native 编写 JS 代码,并承认 React 确实好用,他认为现在是转到新的技术栈的好时机,因为在很多情况下 React Native 的优点都大于缺点。

我们使用 Vue.js 编写 Web 的前端人员几周就掌握了 React Native ,但是我认为这个转变是值得的,如果我们 Web 也使用 React.js,那么我们的技术栈将会变得更简单。我并不后悔使用 Vue.js 开发 Web,具体原因在我以前的一篇文章中解释过(http://pixeljets.com/blog/why-we-chose-vuejs-over-react/),实际上我对 Vue.js 在 Web 领域的预测已经成为现实,但我仍然期望在 2018 年里中小型团队继续选择用 React 来进行 Web 和移动端的开发,因为 synergy 的存在我相信这样的选择是明智的。

使用 Java 和 Swift / Objective C 分别开发不同平台的 App 虽然没错,但是从商业的角度来看,它的代价是很高的,此外,与 React Native Codepush 相比,想要通过 App Store 的审核也不是那么容易的。

GraphQL

GraphQL 是 Facebook 的另一个重量级产品,它让 React 生态系统如虎添翼。

虽然它当前还不成熟,比较复杂 并且有缺点,但是看起来 GraphQL 在未来将有很大可能替代 REST。

GraphQL 标志着前端领域大多数的创新都发生在 React 圈,然后这些创新再在其他框架中被采用和改进。

Angular 的未来预测

Stackoverflow 展示了一个有关前端开发人员问题的有趣图表:

Angular 在这张图中看起来很好,但我不并认为这预示着 Angular 作为一个框架能够取得长期成功。在我看来,对于那些维护传统的 Angular 1 代码的开发者来说,从 Angular 1 迁移到 Angular2 + 是一个明智的选择,但是当他试图迁移并且看到 Angular 的新老版本之间的巨大区别时,这会产生挫败感,并且这个事实也解释了 Stackoverflow 上有大量问题的原因。

Vue.js 的缺陷

Vue.js 目前即便还无法支持移动应用,但在 2017 年的其中一段时间,它通过获得开发者的支持而赢得了与 React 的竞争。

Wordpress 正在考虑用 React 来构建其前端布局,并且很可能将 Vue.js 加入 Wordpress 生态系统,就像 Laravel 一样。不过 Facebook 很快就调整了 React 许可证,并将这个想法扼杀了。

写在最后

通过三大框架的对比,我们更倾向于 React,在此也推荐其他的团队根据自身的情况选择 Vue.js 或 React。基于此,开发者也在 Hacker News(https://news.ycombinator.com/item?id=15999688)上发表了自己的看法:

@antoriv:

在这次的调查报告中,我最感兴趣的是百分比,即(以前使用过、将再次使用)/(以前使用过、再次使用+之前使用过、不再使用)。

2016年:

2017年:

其中,特别有趣的是,许多框架的满意度比“没有框架”的高。当然这主要归因于很多没有使用框架的开发者。我就曾遇到过一些认为前端框架是无稽之谈的开发者(通常是后端开发人员),他们更喜欢只写一堆 jQuery。另外,如果您在 Wordpress 网站上工作,那么框架往往是没有必要的。

个人而言,我已经习惯在这些框架(Backbone,Angular 1,Ember和 React)中编写代码,我更喜欢React。

@philliphaydon:

对于 Angular 2,我想我永远不会再使用。 因为它带来的问题远远多于解决的问题。 它需要丰富的知识经验来构建大型应用程序,否则总是会遇到性能问题。

原文:Vue.js vs React in 2017: state of art

链接:http://pixeljets.com/blog/vue-js-vs-react-what-to-expect-in-2018/

作者:Anton Sidashin

译者:安翔

责编:苏宓

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20171228A0RAZZ00?refer=cp_1026

同媒体快讯

相关快讯

扫码关注云+社区