最近學(xué)習(xí)了state范式化管理,打算重構(gòu)自己個人博客的留言板模塊。以前留言板模塊的狀態(tài)是這樣的, 每個留言有多個評論,每個評論有多個回復(fù)。{
msgs:[
{
commenter:{ ... },
comments:[
{
replier:{ ... }
},
...
]
},
...
]
}state范式化之后{ msgs:{ byId:{},allIds:[] }, comments:{ byId:{},allIds:[] }, replies:{ byId:{},allIds:[] }, users:{ byId:{},allIds:[] }
}看到這個結(jié)構(gòu)思考了很久,UI上還是只能留言/評論/回復(fù)嵌套起來,然后我就非常疑惑,我該如何創(chuàng)建容器組件?如果我創(chuàng)建一個MessageList(留言列表)的容器組件,那它需要監(jiān)聽state中的 msgs/comments/replies/users的變化,而且我需要在MessageList中直接解析數(shù)據(jù),傳遞給其子組件,CommentList(評論列表的UI組件)等等,這樣就失去了范式化state的優(yōu)勢:傳遞ID代替?zhèn)鬟f數(shù)據(jù)。UI結(jié)構(gòu)如下,最外層的是Message(單個留言),藍色的是評論列表,粉色的是回復(fù)列表。我不知道我描述清楚我的問題了沒,但是真的被卡住寫不下去了。。求大神解救。。簡單地說,就是我想知道這樣的情況下,如何將state范式化用好?
關(guān)于Redux,State范式化管理如何理解?
ibeautiful
2019-03-16 15:45:09