簡體   English   中英

之間的區別:Redux和Relay

[英]Difference between : Redux and Relay

我已經閱讀了許多基於redux和relay的文章/文檔但仍然令我感到困惑,這兩個庫有何不同?
這兩個庫的優點和缺點是什么?
GraphQL在中繼中的確切作用是什么?
哪個庫更適合企業數據驅動的應用程序(例如CRM / ERP)?

兩者都是Flux實現,這是用於管理應用程序狀態的Facebook框架。

  • Redux :通用的javascript庫,可幫助您處理應用程序中的狀態管理。 Redux與反應無關,可以與任何庫一起使用。 react-redux庫用於輕松集成react和redux。 在redux中,應用程序狀態位於單個存儲中,每個組件都可以訪問該狀態,還可以通過分派操作來更改狀態。 盡管可以手動完成,Redux並不能處理開箱即用的數據提取:只需創建一個操作即可將數據從服務器中提取到存儲中。

  • 中繼 :由facebook創建以進行反應,並在此內部使用。 Relay與redux相似,因為它們都使用單個存儲。 主要區別在於,中繼僅管理源自服務器的狀態,並且通過GraphQL查詢(用於讀取數據)和變異(用於更改數據)使用對狀態的所有訪問。 中繼僅為您緩存數據,而僅提取已更改的數據,僅此而已就可以為您優化數據獲取。 中繼還支持樂觀更新,即在服務器結果到達之前更改狀態。

GraphQL是使用聲明性和可組合查詢的Web服務框架和協議,解決了諸如過度獲取和不足獲取之類的問題,人們認為它是替代REST的有效候選者。
GraphQL不依賴於繼電器,反之,繼電器依賴於Graphql。 可以以相同的方式在其他所有數據提取操作中使用Graphql。

如您所見,中繼相對於redux的主要優點是數據獲取已得到處理,並且對此進行了優化。
另一方面,它無法管理客戶端的特定狀態,但這很少需要。

另外,IMO Relay較難學習和實施,但最終結果更好且更優化,但是對於小型應用程序,我將使用redux。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM