【第1167期】npm 2017 JavaScript 框架報告之 React 生態系統分析

前端早讀課發表於2018-01-13

前言

這幾天凍壞了。2018年才過去兩週,針對關於2017年的前端行業總結不少,那今天帶來是大家都很熟悉的npm社群的總結。今日早讀文章由@局長翻譯分享。

正文從這開始~

前兩天,我們報導了 npm 2018 年的第一個 JavaScript 現狀報告的第一部分,該部分講述了 2017 前端框架的現狀,我們也從中看到在前端框架領域 React 的主導地位。

今天,npm 釋出了報告的第二部分 —— 對強大的 React 的生態系統進行了分析。

來看看與 React 有關的軟體包的生態系統。

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

剛開始 Facebook 構建 React 時,許多這些軟體包來自開源社群的第三方。這些軟體包使用 React 併為其補充功能以提供完整的應用程式體驗。它們中有幾個都提供了類似的功能,彼此競爭。

React Router

0?wx_fmt=png

豐富的 Web 應用程式都有一個共同特點,那就是提供多個“路由”,這些“路由”本質上是不同的功能塊,在瀏覽器中表示為單獨的 URL。

React 不需要為簡單的應用程式使用路由,路由有時會用在桌面和移動應用程式等環境中,而它並不是必需的。因此,React Router 雖然是最受歡迎的 React 應用程式路由解決方案,但使用量卻只有 React 本身的一半。

這是我們從 React 學到的一部分:通過將自己限制在一個明確定義的問題領域並具有明確定義的介面,它使其本身可以應用於比原始設計者更廣泛的應用範圍。這個決定增加了開發者在 React 上的使用和工作頻率,進一步改進了 React,並擴充套件了它的生態系統,創造了一個有益的迴圈。這是一個令人驚訝的結果,因為作為一個部分的解決方案,React 本質上不如 Ember 和 Angular 這樣的完整框架使用起來方便。

Flux

0?wx_fmt=png

在一個完整應用程式中,React 未解決的一個部分是資料層。當年 Facebook 推出 React 時,還推出了Flux(一種管理應用程式中的狀態的方法)和 GraphQL(一種用於在客戶端和伺服器之間進行通訊的系統)。不過兩者都不如 React 本身流行。

Flux 在 React 釋出之後不久就被推出,直到 2015 年中才得到普及,但是 2015 年中期之後,它們的軌跡發生了很大的分化,Flux 的受歡迎程度在緩慢下滑。

Redux

0?wx_fmt=png

Flux 沒落的一個解釋是 Redux 的崛起。針對應用程式,Redux 和 Flux 提供了相同的功能,但給開發者帶去了不同的體驗,Redux 於 2015 年中期推出,迅速發展並超過了 Flux,而 Flux 則在同一時間開始下滑。

Redux 現在幾乎和 React Router 一樣流行,而且兩者緊密地相互追隨,並且越來越受歡迎。這表明 Redux 已經取代 Flux,成為 React 網路應用程式的首選狀態管理系統。

MobX

0?wx_fmt=png

MobX 於 2016 年年中推出,是 Flux 和 Redux 的競爭對手。目前它正在快速增長,但仍然是這個領域的“萌新”,不過值得關注。

RxJS

0?wx_fmt=png

React 生態中很奇怪的一個專案 RxJS,它是另一個與 Flux 和 Redux 競爭的狀態管理元件。RxJS 的流行不容易追蹤和解釋。首先,它現存有兩個版本,一個是傳統版本rx,一個是當前版本rxjs。這兩個下載量都很大,雖然rx在下降,而rxjs在增長。

RxJS 的使用似乎是作為其他專案的子依賴,特別是 Angular CLI 的驅動。這意味著所有使用 Angular 的驅動器都使用相同的 RxJS。它也被合併到其他一些流行的命令列工具中。

GraphQL

0?wx_fmt=png

雖然它和 React 一樣,在 Facebook 內部開發並同時釋出,但 GraphQL 與 React 並沒有內在的聯絡;它只是 Web 客戶端查詢伺服器資料的一種方式。它通過名為 Relay 和 Apollo 這兩個具有競爭性的庫獲得了流行,這兩個庫提供了一個 Web 應用程式,用於便捷生成 GraphQL 和管理資料流。

Relay 釋出得比較早,並且正在增長,但是已經被半年後釋出的 Apollo 超越,Apollo 已經越來越受歡迎,並且增長速度明顯加快。雖然 Apollo 的絕對數量還很小,但是它的增長軌跡值得深入挖掘。

React 生態系統總結

0?wx_fmt=png

再看看過去 12 個月的增長,我們可以看到相關軟體包在 React 生態系統中的相對位置。趨勢也變得清晰:

  • Apollo 正在快速增長

  • Flux 在慢慢沒落

  • React Router 和 Redux 都非常受歡迎,並且在使用中緊密聯絡,所以我們將它們放在了一起

  • MobX 有著良好的增長,但尚未能挑戰 Redux 的地位

  • React 本身就十分龐大

最後,關於2017行業總結報告

【第1154期】2017 年 JavaScript 發展狀況回顧

【第1152期】2017 JavaScript 調查報告概述

【第1144期】2017前端技術發展回顧

關於本文
譯者:@局長
譯文:https://www.oschina.net/news/92299/the-state-of-javascript-frameworks-2017-the-react-ecosystem
作者:@Laurie Voss
原文:https://www.npmjs.com/npm/the-state-of-javascript-frameworks-2017-part-2-the-react-ecosystem

0?wx_fmt=jpeg

【視訊教程】webpack3.x視訊教程 全網首發

相關文章