中,我們介紹了2017年 JavaScript 架構的整體情況。我們也了解到在衆多的前端架構中,目前最為龐大又在快速增長的當屬 React 了,本文就來重點介紹 React 的生态系統。

首先看看與 React 有關的軟體包的生态系統。在 Facebook 建構 React 之初,就有許多來自于開源社群第三方庫的軟體包。這些軟體包使用 React 補充其它功能,以便提供完整的應用程式解決方案。當然,安裝包中也存在着提供相似功能的彼此競争關系。
React Router
豐富的 Web 應用程式具有的一個共同特點就是:提供了多個“路由”。這些“路由”本質上是不同的功能塊,在浏覽器中表現為單獨的 URL。React 不需要為簡單的應用程式使用路由,同時在一些桌面和移動應用程式環境中,路由也不是必需的。是以,React Router 雖然是最受歡迎的 React 應用程式的路由解決方案,但 React Router 的相對流行程度卻隻有 React 的一半。
了解 React 的開發者都知道,React 應用于一個明确定義的問題領域并具有明确定義的接口,這也使其本身可以應用于比原本設計的更廣泛的應用領域。這種方式雖然增加了開發者使用 React 的 pool,但也進一步提升了 React,擴充了 React 的生态系統,創造了一個有益的循環。React 作為一個部分的解決方案,本質上是不如 Ember 和 Angular 這樣的完整架構使用起來友善的。
Flux
React 作為一個非完整的解決方案,其中一個尚未解決的問題就是應用程式的資料層部分。當引入 React 時,Facebook 還推出了 Flux(一種管理應用程式中狀态的方法)和 GraphQL(一種用于在用戶端和伺服器之間進行通信的系統)。這兩者都不如 React 本身流行。
Flux 在 React 之後不久就被推出了,但卻直到2015年中期才得到普及。在這期間,Flux 與 React Router 一起呈同步上升趨勢,這也表明 Flux 和 React Router 正在網絡應用程式中配合使用。但是,2015年中期之後,Flux 和 React Router 的軌迹發生了很大的分化,Flux 在受歡迎程度上緩慢下滑。
Redux
造成 Flux 受歡迎下降的一種原因是 Redux 的崛起。Redux 和 Flux 針對的是應用程式功能中完全相同的部分,Redux 于2015年中期正式推出,并且使用率迅速提高,而 Flux 則在同一時期開始逐漸下滑。Redux 現在幾乎和 React Router 的相對流行程度相當,而且兩者互相緊密相關,并且都越來越受歡迎。這也表明 Redux 已經取代 Flux 成為 React 網絡應用程式中首選的狀态管理系統。
MobX
MobX 是2016年中期推出的,也是 Flux 和 Redux 的競争對手。雖然 MobX 的使用率還不高,但是目前正在快速增長,值得關注。
RxJS
RxJS 是 Flux 和 Redux 的另一個競争的狀态管理元件。RxJS 的流行情況不好統計。首先,RxJS 有兩個現存版本,一個是傳統版本 rx,一個是目前版本 rxjs。這兩個版本下載下傳量都很大,其中 rx 下載下傳量正在下降,而 rxjs 下載下傳量正在增長。
RxJS 的使用基本是作為其它項目子依賴的驅動,特别是對于 Angular CLI。這意味着所有使用 Angular 的驅動器,都需要使用相同的 RxJS。同時,RxJS 也被合并到其它一些流行的指令行工具中。
GraphQL
GraphQL 與 React 是由 Facebook 同時開發的,但是這兩者之間并沒有内在的聯系。GraphQL 是 Web 用戶端查詢伺服器資料的一種方式。GraphQL 通過名為 Relay 和 Apollo 的兩個競争庫得到了普及,Relay 和 Apollo 提供了一個 Web 應用程式,用于生成 GraphQL 和管理資料流。
Relay 首先被釋出,并且正在增長,但是半年後釋出的 Apollo 卻上升的更快,同時也越來越受到歡迎,并且增長速度還在明顯加快。雖然 GraphQL 開發者使用量的絕對數還很小,但是 Apollo 的增長軌迹意味着 GraphQL 很值得開發者關注。
React生态系統概述
通過上圖中 React 生态系統12個月的變化趨勢,可以得到以下結論:
- Apollo 的使用率正在快速增長。
- Flux 的使用率正在下降。
- React Router 和 Redux 都非常受歡迎,并且在使用中具有緊密相關的聯系。
- MobX 具有良好的增長,但其使用率還遠沒有到達 Redux。
- React 本身的生态系統是巨大的。
JavaScript 開發工具推薦
SpreadJS 純前端表格控件是基于 HTML5 的 JavaScript 電子表格和網格功能控件,提供了完備的公式引擎、排序、過濾、輸入控件、資料可視化、Excel 導入/導出等功能,适用于 .NET、Java 和移動端等各平台線上編輯類 Excel 功能的表格程式開發。
原文連結:https://www.npmjs.com/npm/the-state-of-javascript-frameworks-2017-part-2-the-react-ecosystem
轉載請注明出自:葡萄城控件
關于葡萄城
活字格由葡萄城公司研發、銷售并提供技術服務。葡萄城公司成立于1980年,是全球領先的集開發工具、商業智能解決方案、管理系統設計工具于一身的軟體和服務提供商。西安葡萄城是其在中國的分支機構,面向全球市場提供軟體研發服務,并為中國企業的資訊化提供國際先進的開發工具、軟體和研發咨詢服務。
原文釋出時間為:2018年01月24日
原文作者:
葡萄城技術團隊本文來源:
開源中國如需轉載請聯系原作者