2017-03-06 101 views

回答

1

通常,經驗法則是,你使用redux store在您的應用程序存儲又名從服務器獲取和UI行爲當地react state,像你的情況切換項目管理數據。但它不是一個嚴格的規則,舉例來說,如果你需要切換從多個地方的東西更容易使用redux

4

目前最好的做法是使用本地狀態來處理您的user interface (UI)狀態的狀態,而不是data

你的情況就是上述的完美例子。因此,管理隱藏和顯示組件的狀態必須處於本地狀態本身,而不是REDX存儲區

您可以以本地狀態存儲的UI數據的另一個示例將是選項列表中當前選定的選項卡。

考慮何時使用local state的一個好方法是考慮您存儲的值是否將被另一個組件使用。如果值是特定於只有一個組成部分,那麼它的安全保持local state.

該值,進一步擬訂

Redux也是觸發在您需要的多個部件,或者跨越多個路由訪問事件有用。一個例子就是一個登錄模式,它可以通過你的應用程序中的多個按鈕觸發。您可以有條件地將其渲染到應用程序的頂層,並使用Redux操作通過更改商店中的值來觸發它,而不是有條件地渲染十幾個位置的模式。

1

這取決於您的組件的組織方式。如果在多個組件中使用切換狀態,那麼我更願意通過redux store來管理狀態。 如果該狀態是該組件的本地狀態,並且該狀態不在其他任何地方使用,則最好的做法是管理該組件內的狀態。因此該組件將是自包含的。

4

對此沒有正確或錯誤的答案。爲了幫助您決定,這裏是直接採取一些經驗共同規則從redux documentation

  • 做關於這個數據的應用程序關心的其他部分?
  • 您是否需要能夠根據此原始數據創建更多派生數據?
  • 是否使用相同的數據驅動多個組件?
  • 您是否有能力將此狀態恢復到給定的 時間點(即時間行程調試)?
  • 你想緩存數據(即使用什麼狀態,如果它已經存在,而不是重新請求它)?

以保持多數終極版的UI狀態的另一個好處是,你可以寫更多的無狀態的功能組件,並利用performance optimisations they will bring在未來的版本陣營:

這種模式被設計成鼓勵創建這些應該包含大部分應用程序的簡單組件。未來,我們還可以通過避免不必要的檢查和內存分配來針對這些組件進行性能優化。我與工作時考慮

+2

作爲Redux FAQ的作者,是的,這是正確的答案:) – markerikson

1

3分Redux的反應在本地狀態

1.keep UI狀態和瞬態數據(如表格輸入)。

2.保留您打算在Redux存儲區中的組件之間共享的數據。

3.您從服務器獲取的數據應該到達redux存儲區。