2016-06-26 77 views
25

我已經閱讀了基於redux和繼電器的文章/文檔數量,但我仍然對這兩個庫的不同之處感到困惑嗎?
這兩個庫的優點和缺點是什麼?
GraphQL在繼電器中的確切作用是什麼?
哪個庫更適合企業數據驅動的應用程序,如CRM/ERP?之間的差異:Redux和繼電器

回答

46

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

  • 終極版:一般的JavaScript庫,有助於在應用程序中處理狀態管理。 Redux不依賴於反應,並且可以與任何庫一起使用。 react-redux庫用於 很容易與redux集成反應。在redux中,應用程序狀態 位於單個存儲中,每個組件都可以訪問狀態 ,並且還可以通過分派操作來更改狀態。 Redux不會 處理取出盒子中的數據,儘管它可以手動完成: 只需創建一個操作,將數據從服務器提取到 存儲區。

  • 繼電器:由facebook創建的反應,也在內部使用。 Relay與Reduce類似,都使用一個 商店。主要區別在於,relay只管理源自服務器的狀態 ,並且通過 GraphQL查詢(用於讀取數據)和突變(用於更改數據)使用對該狀態的所有訪問。 中繼爲您緩存數據併爲您優化數據提取,到 只獲取已更改的數據,僅此而已。 Relay還支持樂觀更新,即在服務器的 結果到達之前更改狀態。

GraphQL是一個Web服務框架和協議使用聲明和組合的查詢,解決問題就像在獲取和取下,它被認爲是一個有效的候選人,以取代REST。
GraphQL不依賴於中繼,反過來,中繼依賴於graphql。 Graphql可以以與其他數據讀取完成相同的方式使用。

正如你所看到的,relay對redux的主要優點是數據讀取已經被處理,並且非常優化。
另一方面,它不能管理客戶端的特定狀態,但這很少需要。另外,IMO Relay很難學習和實現,但最終結果更好,更優化,但對於小型應用程序,我會使用redux。

+0

:哪種庫更適合企業數據驅動的應用程序,如CRM/ERP? –

+3

中繼,因爲它處理數據獲取和管理的棘手部分。另外我會說接力已經在我的「企業」視圖,而REDX打算更輕。雖然這些只是意見。 –

+0

@GershonPapi爲小型應用程序,你會與繼電器?我認爲你的意思是減重。 – Timmerz