想一想:我在Redux的數據建模我的商店
我有一個應用程序,它最終會變得非常大。它是一個儀表盤,可以讓你訪問各種實用程序,其中一個是待辦事項應用程序。
如果我只是要建立只是一個待辦事項應用程序,然後我的狀態對象看起來像這樣:
{ todos:[], completed:false, todoInput:''};
todoInput
將被捆綁到一個窗體域,並在點擊添加,它會更改todos
數組並切換completed
字段。所以我的combineReducers()
函數看起來像這樣。
combineReducers({todos,completed,todoInput});
,因爲所有的狀態是相關的待辦事項應用程序,因爲僅僅是一個待辦事項應用這將使感。
現在,因爲我建立一個更爲複雜的應用程序,它也有一個待辦事項應用程序,這是怎麼了我的狀態將有可能是這樣的:
{
otherState:'',evenMoreState:[]',evenMore:{},
todo:{ todos:[], completed:false, todoInput:''}
}
正如你可以看到我已經分離的待辦事項到一個單獨的對象現在,它是封裝和更有組織的。所以我有兩個問題。
1)這是個好主意嗎?這似乎是合乎邏輯的舉動,因爲我的應用程序的規模會增大,我不希望所有的狀態都作爲主狀態對象的屬性浮動。我是否正確地處理了這個問題?
2)我的聯合減速器(據我所知)不能採取嵌套的對象。所以它現在看起來像這樣。
combineReducers({ otherState,evenMoreState,evenMore,todo})
所以現在我減速的組合物將具有處理待辦事項狀態機內部工作要做。有沒有更好/不同的方式來做到這一點?
謝謝
ahh感謝您的回購(將通過它挖掘!),第二次調用combineReducers正是我所期待的。 – JohnSnow