2017-04-27 115 views
1

例如,我有一個實體在後端調用作業,前端調用不同的ajax來獲取數據通過不同的搜索過濾器,如「jobStatus =取消」等...... 因此,我應該只在商店維護一個jobList?或維護一個列表匹配不同的Ajax? 謝謝你的幫助。react-redux:我應該維護商店數據的冗餘嗎?

+0

沒有,但有一些例外。由於性能,很少需要保存一些冗餘數據。 – Sulthan

回答

1

最好把你的REDX存儲看作是一個數據庫。規範你的嵌套列表,只存儲每個實體一次,並在所有其他地方通過id引用它。一個好的方法是使用Normalizr庫。 https://github.com/paularmstrong/normalizr

從終極版官方文檔

的推薦方法在 終極版商店管理關係或嵌套的數據是把你的店的一部分,就好像它是一個 數據庫,並保持這在歸一化形式的數據

原因:

當一塊數據是DUPL在幾個地方進行冰毒,它變得更難以確保它被適當地更新。

嵌套數據 意味着相應的縮減器邏輯必須更復雜或更復雜。特別是,嘗試更新深度嵌套字段 會非常快速地變得非常難看。

由於不可變的數據更新需要 在狀態樹中的所有祖先被複制和更新,以及和 新對象的引用會造成連接UI組件重新渲染, 更新到深度嵌套的數據對象可能迫使完全不相關 UI組件重新呈現,即使它們正在顯示的數據並非 實際發生了更改。

參考:http://redux.js.org/docs/recipes/reducers/NormalizingStateShape.html

+0

感謝您的回答〜如果我遵循這種方式,它看起來像做了兩次過濾工作,因爲我必須將選擇器添加到我的容器中,但我已經在後端完成了此操作。 –