2017年 JavaScript 框架回顧 — React生態系統

發表於2018-01-25

前一篇文章中,我們介紹了2017年 JavaScript 框架的整體情況。我們也瞭解到在眾多的前端框架中,目前最為龐大又在快速增長的當屬 React 了,本文就來重點介紹 React 的生態系統。139239-20180123104211287-72656440

 

首先看看與 React 有關的軟體包的生態系統。在 Facebook 構建 React 之初,就有許多來自於開源社群第三方庫的軟體包。這些軟體包使用 React 補充其它功能,以便提供完整的應用程式解決方案。當然,安裝包中也存在著提供相似功能的彼此競爭關係。

React Router139239-20180123104423662-1049330362

 

豐富的 Web 應用程式具有的一個共同特點就是:提供了多個“路由”。這些“路由”本質上是不同的功能塊,在瀏覽器中表現為單獨的 URL。React 不需要為簡單的應用程式使用路由,同時在一些桌面和移動應用程式環境中,路由也不是必需的。因此,React Router 雖然是最受歡迎的 React 應用程式的路由解決方案,但 React Router 的相對流行程度卻只有 React 的一半。

瞭解 React 的開發者都知道,React 應用於一個明確定義的問題領域並具有明確定義的介面,這也使其本身可以應用於比原本設計的更廣泛的應用領域。這種方式雖然增加了開發者使用 React 的 pool,但也進一步提升了 React,擴充套件了 React 的生態系統,創造了一個有益的迴圈。React 作為一個部分的解決方案,本質上是不如 Ember 和 Angular 這樣的完整框架使用起來方便的。

Flux

139239-20180123104447787-1326614067

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

Flux 在 React 之後不久就被推出了,但卻直到2015年中期才得到普及。在這期間,Flux 與 React Router 一起呈同步上升趨勢,這也表明 Flux 和 React Router 正在網路應用程式中配合使用。但是,2015年中期之後,Flux 和 React Router 的軌跡發生了很大的分化,Flux 在受歡迎程度上緩慢下滑。

Redux

139239-20180123104543928-786715091

造成 Flux 受歡迎下降的一種原因是 Redux 的崛起。Redux 和 Flux 針對的是應用程式功能中完全相同的部分,Redux 於2015年中期正式推出,並且使用率迅速提高,而 Flux 則在同一時期開始逐漸下滑。Redux 現在幾乎和 React Router 的相對流行程度相當,而且兩者相互緊密相關,並且都越來越受歡迎。這也表明 Redux 已經取代 Flux 成為 React 網路應用程式中首選的狀態管理系統。

MobX

139239-20180123104612600-491348449

MobX 是2016年中期推出的,也是 Flux 和 Redux 的競爭對手。雖然 MobX 的使用率還不高,但是目前正在快速增長,值得關注。

RxJS

139239-20180123104651569-1362723666

RxJS 是 Flux 和 Redux 的另一個競爭的狀態管理元件。RxJS 的流行情況不好統計。首先,RxJS 有兩個現存版本,一個是傳統版本 rx,一個是當前版本 rxjs。這兩個版本下載量都很大,其中 rx 下載量正在下降,而 rxjs 下載量正在增長。

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

GraphQL

139239-20180123104708381-393947826

GraphQL 與 React 是由 Facebook 同時開發的,但是這兩者之間並沒有內在的聯絡。GraphQL 是 Web 客戶端查詢伺服器資料的一種方式。GraphQL 通過名為 Relay 和 Apollo 的兩個競爭庫得到了普及,Relay 和 Apollo 提供了一個 Web 應用程式,用於生成 GraphQL 和管理資料流。

Relay 首先被髮布,並且正在增長,但是半年後釋出的 Apollo 卻上升的更快,同時也越來越受到歡迎,並且增長速度還在明顯加快。雖然 GraphQL 開發者使用量的絕對數還很小,但是 Apollo 的增長軌跡意味著 GraphQL 很值得開發者關注。

React生態系統概述

139239-20180123104732334-2031228441

通過上圖中 React 生態系統12個月的變化趨勢,可以得到以下結論:

  • Apollo 的使用率正在快速增長。
  • Flux 的使用率正在下降。
  • React Router 和 Redux 都非常受歡迎,並且在使用中具有緊密相關的聯絡。
  • MobX 具有良好的增長,但其使用率還遠沒有到達 Redux。
  • React 本身的生態系統是巨大的。

相關文章