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