簡體   English   中英

React + Redux + Router-我應該為所有頁面/組件使用一種狀態/存儲嗎?

[英]React + Redux + Router - should I use one state/store for all pages/components?

我正在使用React + Redux,在閱讀了關於react-router-reduxredux-router的信息之后 ,並且在閱讀了Dan Abramov的回答之后 ,我決定使用“香草”的react-router(我不在乎時間旅行等。這點)。

剩下的唯一開放問題是如何處理不同路線上的狀態。 在我的應用程序中,每個路由子樹都可以是一個不同且獨立的部分(尤其是當它變大時)。 擁有一家商店來處理所有路線/頁面仍然是一種好習慣嗎? 我是否(至少)對每個主要路徑都沒有不同的存儲/狀態?

我認為路由應該是某種無狀態且獨立的路由,這意味着,如果我直接進入我的鏈接之一,它將起作用,並且不會意識到其他同級路由。 我應該把它反映到我的商店嗎?

編輯

經過更多的思考,我猜想使用不同的reducers +“ CombineReducers”可以解決問題。 我要驗證的唯一一件事是,導航時先前路線的狀態不會持續

驗證先前路由狀態不持久的可能解決方案中的一種:

當用戶在頁面之間導航時,每條路線中的頂級組件都在安裝和卸載。 您可以使用它們的生命周期方法發送任何redux事件以清除狀態。

例如,從componentWillUnmount發送CLEAN_STATE 您應該從它的頂級reducer結束返回初始狀態中捕獲此事件。 為此,您可以使用undefined作為狀態參數手動調用所有嵌套的reducer。 在這種情況下,每個減速器將返回其初始狀態。

暫無
暫無

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

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