1. 程式人生 > >2017年 JavaScript 框架回顧 -- React生態系統

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

images 本質 分享圖片 擴展 auto 軟件 使用率 關系 表格控件

前一篇文章中,我們介紹了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年,是全球領先的集開發工具、商業智能解決方案、管理系統設計工具於一身的軟件和服務提供商。西安葡萄城是其在中國的分支機構,面向全球市場提供軟件研發服務,並為中國企業的信息化提供國際先進的開發工具、軟件和研發咨詢服務。


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