2017 年 JS 框架回顧:React 生態(tài)系統(tǒng)
來源:原創(chuàng) 時(shí)間:2018-01-30 瀏覽:0 次咱們也了解到在很多的前端結(jié)構(gòu)中,現(xiàn)在最為巨大又在快速增加的當(dāng)屬 React 了,本文就來要點(diǎn)介紹 React 的生態(tài)體系。
首要看看與 React 有關(guān)的軟件包的生態(tài)體系。在 Facebook 構(gòu)建 React 之初,就有許多來自于開源社區(qū)第三方庫的軟件包。這些軟件包運(yùn)用 React 彌補(bǔ)其它功用,以便供給完好的應(yīng)用程序處理方案。當(dāng)然,安裝包中也存在著供給類似功用的互相競賽聯(lián)絡(luò)。
React Router
豐厚的 Web 應(yīng)用程序具有的一個(gè)一同特色就是:供給了多個(gè)“路由”。這些“路由”本質(zhì)上是不同的功用塊,在瀏覽器中表現(xiàn)為獨(dú)自的 URL。React 不需求為簡略的應(yīng)用程序運(yùn)用路由,一同在一些桌面和移動應(yīng)用程序環(huán)境中,路由也不是必需的。因而,React Router 盡管是最受歡迎的 React 應(yīng)用程序的路由處理方案,但 React Router 的相對盛行程度卻只有 React 的一半。
了解 React 的開發(fā)者都知道,React 應(yīng)用于一個(gè)清晰界說的問題范疇并具有清晰界說的接口,這也使其自身能夠應(yīng)用于比本來規(guī)劃的更廣泛的應(yīng)用范疇。這種辦法盡管增加了開發(fā)者運(yùn)用 React 的 pool,但也進(jìn)一步提升了 React,擴(kuò)展了 React 的生態(tài)體系,發(fā)明了一個(gè)有利的循環(huán)。React 作為一個(gè)部分的處理方案,本質(zhì)上是不如 Ember 和 Angular 這樣的完好結(jié)構(gòu)運(yùn)用起來便利的。
Flux
React 作為一個(gè)非完好的處理方案,其間一個(gè)沒有處理的問題就是應(yīng)用程序的數(shù)據(jù)層部分。當(dāng)引進(jìn) React 時(shí),F(xiàn)acebook 還推出了 Flux(一種辦理應(yīng)用程序中狀況的辦法)和 GraphQL(一種用于在客戶端和服務(wù)器之間進(jìn)行通訊的體系)。這兩者都不如 React 自身盛行。
Flux 在 React 之后不久就被推出了,但卻直到2015年中期才得到遍及。在這期間,F(xiàn)lux 與 React Router 一同呈同步上升趨勢,這也標(biāo)明 Flux 和 React Router 正在網(wǎng)絡(luò)應(yīng)用程序中合作運(yùn)用??墒?,2015年中期之后,F(xiàn)lux 和 React Router 的軌道發(fā)生了很大的分解,F(xiàn)lux 在受歡迎程度上緩慢下滑。
Redux
形成 Flux 受歡迎下降的一種原因是 Redux 的興起。Redux 和 Flux 針對的是應(yīng)用程序功用中完全相同的部分,Redux 于2015年中期正式推出,而且運(yùn)用率敏捷進(jìn)步,而 Flux 則在同一時(shí)期開端逐步下滑。Redux 現(xiàn)在簡直和 React Router 的相對盛行程度適當(dāng),而且兩者彼此嚴(yán)密相關(guān),而且都越來越受歡迎。這也標(biāo)明 Redux 現(xiàn)已替代 Flux 成為 React 網(wǎng)絡(luò)應(yīng)用程序中首選的狀況辦理體系。
MobX
MobX 是2016年中期推出的,也是 Flux 和 Redux 的競賽對手。盡管 MobX 的運(yùn)用率還不高,可是現(xiàn)在正在快速增加,值得重視。
RxJS
RxJS 是 Flux 和 Redux 的另一個(gè)競賽的狀況辦理組件。RxJS 的盛行狀況欠好計(jì)算。首要,RxJS 有兩個(gè)現(xiàn)存版別,一個(gè)是傳統(tǒng)版別 rx,一個(gè)是當(dāng)時(shí)版別 rxjs。這兩個(gè)版別下載量都很大,其間 rx 下載量正在下降,而 rxjs 下載量正在增加。
RxJS 的運(yùn)用基本是作為其它項(xiàng)目子依靠的驅(qū)動,特別是關(guān)于 Angular CLI。這意味著一切運(yùn)用 Angular 的驅(qū)動器,都需求運(yùn)用相同的 RxJS。一同,RxJS 也被合并到其它一些盛行的命令行東西中。
GraphQL
GraphQL 與 React 是由 Facebook 一同開發(fā)的,可是這兩者之間并沒有內(nèi)涵的聯(lián)絡(luò)。GraphQL 是 Web 客戶端查詢服務(wù)器數(shù)據(jù)的一種辦法。GraphQL 經(jīng)過名為 Relay 和 Apollo 的兩個(gè)競賽庫得到了遍及,Relay 和 Apollo 供給了一個(gè) Web 應(yīng)用程序,用于生成 GraphQL 和辦理數(shù)據(jù)流。
Relay 首要被發(fā)布,而且正在增加,可是半年后發(fā)布的 Apollo 卻上升的更快,一同也越來越遭到歡迎,而且增加速度還在顯著加速。盡管 GraphQL 開發(fā)者運(yùn)用量的絕對數(shù)還很小,可是 Apollo 的增加軌道意味著 GraphQL 很值得開發(fā)者重視。
React生態(tài)體系概述
經(jīng)過上圖中 React 生態(tài)體系12個(gè)月的改變趨勢,能夠得到以下定論:
Apollo 的運(yùn)用率正在快速增加。
Flux 的運(yùn)用率正在下降。
React Router 和 Redux 都十分受歡迎,而且在運(yùn)用中具有嚴(yán)密相關(guān)的聯(lián)絡(luò)。
MobX 具有杰出的增加,但其運(yùn)用率還遠(yuǎn)沒有抵達(dá) Redux。
React 自身的生態(tài)體系是巨大的。