1. 程式人生 > >JavaScript 年度調查報告:React、Vue 和 Angular 三分天下,誰將在 2018 年獨佔鰲頭?

JavaScript 年度調查報告:React、Vue 和 Angular 三分天下,誰將在 2018 年獨佔鰲頭?

關鍵時刻,第一時間送達!

要論 2017 年最主流的三個 Web 前端框架,應莫過於 Angular、Vue 和 React 了。然而在實際應用中,這三個框架卻不盡相同,對於規模不大的前端專案來說,Vue 因其極易上手會被列出首選之位,Angular 在快速開發大型 Web 專案上很受推崇,但仍存諸多缺陷,React 正為 JavaScript  應用開發者提供新的開發方式。因此,面對各有千秋的開發框架,作為一名開發者該如何選擇?哪種框架更具有前景?

接下來,本文作者通過近日最新發布的 JavaScript 調查報告,分享其 15 年的 Web 開發經驗,深度剖析前端框架的流行趨勢及未來發展,希望給諸多前端開發者指明一些方向。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

以下為譯文:

其實在一年前,我的團隊在重新專案時,採用了 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 也受到越來越多的歡迎。

0?wx_fmt=png

相較於 Stateofjs 釋出的 2016 年前端框架調查結果:

0?wx_fmt=png

基於以上,通過將 2017 與 2016 年的統計結果進行對比可以發現,在過去一年裡 Vue.js 是大家最想學習的框架,因此我個人預測明年將是 Vue.js 成功的一年,當然 React 增長很穩定,而 Angular 將無法跟上這兩個對手的腳步。2016 年時,Vue.js 被稱為“另一個 JS 框架”,當時它是一匹十足的黑馬,而 React 佔據主導地位,Angular 則是開發者的第二選擇。

但是,Vue.js 只會在 Web 前端中佔據主導地位,而不會統治所有的前端領域。React 則可以在所有的前端領域中盛行。這是為什麼呢?下面,我們將揭開謎底。

React 統治前端領域的關鍵因素

答案就在 Stateofjs.com 釋出的 2017 年移動和桌面應用前端框架的調查結果之中:

0?wx_fmt=png

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 展示了一個有關前端開發人員問題的有趣圖表: 

0?wx_fmt=png

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年:

  • React - 91%的滿意度

  • Vue - 91%的滿意度

  • Angular 2 - 65%的滿意度

  • No framework - 65%的滿意度

  • Ember - 50%的滿意度

  • Angular - 40%的滿意度

  • Backbone - 31%的滿意度

2017年:

  • React - 93%的滿意度

  • Vue - 91%的滿意度

  • Angular 2 - 66%的滿意度

  • No framework - 65%的滿意度

  • Aurelia - 56% 的滿意度

  • Polymer - 53% 的滿意度

  • Ember - 41% 的滿意度

  • Angular - 33% 的滿意度

  • Backbone - 23% 的滿意度

其中,特別有趣的是,許多框架的滿意度比“沒有框架”的高。當然這主要歸因於很多沒有使用框架的開發者。我就曾遇到過一些認為前端框架是無稽之談的開發者(通常是後端開發人員),他們更喜歡只寫一堆 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

譯者:安翔

責編:蘇宓

相關推薦

JavaScript 年度調查報告ReactVue Angular 天下2018 獨佔鰲頭

關鍵時刻,第一時間送達! 要論 2017 年最主流的三個 Web 前端框架,應莫過於 Angular、Vue 和 React 了。然而在實際應用中,這三個框架卻不盡相同,對於規模不大的前端專案來說,Vue 因其極易上手會被列出首選之位,Angular 在快速開發大型 We

2019 ReactVue Angular 哪個最值得學習?

React、Vue 和 Angular 這兩年發展狀況如何?2019 年哪個技術最值得學習? 前幾天 Medium 上有一位作者發表了一篇關於 React、Vue 和 Angular 技術趨勢的文章(連結:http://t.cn/E4EM0QH)。作者根據近兩年的資料,從崗位需求、開發者使用情

ReactVueAngular框架比較

文章目錄 渲染機制 React Diff演算法的三個策略 tree diff component diff element diff Vue Ang

ReactVue小程式中使用函式節流函式防抖

在上一篇中我總結了節流函式和防抖函式的基本原理:總結前端函式防抖與函式節流。 接下來介紹一下防抖函式和節流函式在前端框架中的使用。 在使用前一定要注意兩個問題: this的指向 事件物件的傳遞 React中使用防抖函式和節流函式 在React事件呼叫時,R

華為AccessHybridTrunk種模式的理解

1.關於tag和untag:     tag, untag以及交換機的各種埠模式我一直沒怎麼明白,這裡整理一下。     untag就是普通的Ethernet報文,普通PC機的網絡卡是可以識別這樣的報文進行通訊;     tag報文結構的變化是在源mac地址和目的mac地址

天下魏蜀吳一對多直播一對一直播短視頻直播。能一統天下?

年輕人 一個 視頻分享 後臺 tex 聊天 log app 技術 三分天下,魏蜀吳:一對多直播,一對一直播,短視頻直播。誰能一統天下? 今天的直播行業,由原來的直播逐漸三分天下,一方堅持一對多直播;一方改頭換面,成為一對一直播交友;另一方,短視頻主導,附加了直播。 雖然三分

npm 釋出 2017 JavaScript 框架報告React 占主導地位

npm 的聯合創始人兼營運長 Laurie Voss 近日釋出了 2018 年的第一個 JavaScript 現狀報告,這一系列報告包含三部分,將會提供 JavaScript 發展趨勢和實踐的完整回顧。第一部分講述了 2017 前端框架的現狀,第二部分將講述 React 的生態系統,第三部分將對後端框

Rust 2017 調查報告學習曲線是最大痛點(最大的問題是這門語言太偏底層了現在做底層的少了。還有C這個繞不過去的存在)

穩定版 china 發展 1.5 原型 平臺 正在 報告 超過 Rust 官方在社區上做了一次調查,以了解用戶如何看待 Rust 的發展。調查共收到 5368 份回復,其中有 大約 2/3 的是 Rust 用戶,剩下的 1/3 是非 Rust 用戶,調查結果如下。 點此查

淺談ReactVue 部分異步

rip col ets 函數 打印 settime 最終 out con React中的setState setState為什麽需要異步? 無法限制何時使用異步,多次連續使用setState 防止多次渲染,異步rendering不僅僅是性能上的優化,而且這可能是r

nginx 配置解決 ---react vue 單頁面路由之後重新整理404---問題

nginx中文文件:http://www.nginx.cn/doc/ nginx官網:http://nginx.org/en/docs/ Nginx開發從入門到精通:http://tengine.taobao.org/book/index.html 1、問題現象? 答:在瀏覽器中直接

Redux入門0x106: `react``vue``原生 js`整合`redux`

0x000 概述 之前寫的所有關於redux的文章都是純粹的redux,是和框架無關、環境無關的redux,所以我沒有將redux和react一起講,為的是吧redux和react分開,作為獨立的個體來分析,redux提現的是一種思想,而不是一個思維定式。而現在我們

JavaScript async / await好處正確用法

async/await給我們帶來的最重要的好處是同步程式設計風格。我們來看一個例子吧。 很明顯,async/await版本比promise版本更容易理解。如果忽略await關鍵字,程式碼看起來就像任何其他同步語言,如Python。 好的一面不僅是可讀性,as

JavaScript陣列遍歷forforeachfor infor of$.each$().each的區別

一、for Javascript中的for迴圈,它用來遍歷陣列 var arr = [1,2,3,4] for(var i = 0 ; i< arr.length ; i++){ console.log(arr[i]) } //1,2,3,4 九九乘法

Vue框架專案實戰整理3Vue專案執行流程分析(一)

宣告:本教程不收取任何費用,歡迎轉載,尊重作者勞動成果,不得用於商業用途,侵權必究!!!! 上兩篇講了Vue框架專案實戰整理:1、快速啟動Vue、開發工具介紹 和 Vue框架專案實戰整理:2、Vue環境搭建,今天應該到Vue專案執行流程分析的時候了,為什麼會有這方便的研究

Vue框架專案實戰整理2Vue環境搭建

宣告:本教程不收取任何費用,歡迎轉載,尊重作者勞動成果,不得用於商業用途,侵權必究!!!! 上一篇文章帶大家瞭解了Vue框架專案實戰整理:1、快速啟動Vue、開發工具介紹,這篇文章我將介紹Vue環境搭建我的實戰歷程,我就直接把自己當時在印象筆記上面的做的實戰筆記給貼上複製過來了,然後做了一些

AngularVueReact的區別

Angular、Vue和React都是目前比較流行的前端框架,不同的企業對其前端工作者有不同的要求,那麼這三個框架之間有什麼樣的區別呢?   ▍Angular 框架比較成熟完整,過於龐大,上手難; 指令以ng-xxx開頭; 由谷歌開發和維護;

HackerRank開發者調查報告Python最受歡迎

5關注「實驗樓」,每天分享一個專案教程   國外招聘網站 HackerRank 去年曾進行了一次

來自CNCF的調查報告中國市場的雲原生之路_Kubernetes中文社群

本文介紹了中國雲原生領域技術的發展情況,並與西方國家進行了對比,通過列舉一些大型公司的案例,對結果進行了分析。 為了能夠更快地評估出亞洲一些公司採用開源和雲原生領域技術(例如 Kubernetes 和 Prometheus)的情況,CNCF(Cloud Native Computing Fou

ReactVue專案上線的改善

React、Vue專案上線前的那些事兒 直接使用專案中的東西進行打包 var path = require('path');//引入處理路徑path模組 var htmlWebpackPlugin = require('html-webpack-p

jsreactvue阻止事件冒泡

vue阻止冒泡: <div @click.stop='demoFun'></div> react阻止冒泡:(懶得寫了,直接上其他人的) jquery阻止冒泡 $("#demo").click(function(event){