最近学习了state范式化管理,打算重构自己个人博客的留言板模块。以前留言板模块的状态是这样的, 每个留言有多个评论,每个评论有多个回复。{
msgs:[
{
commenter:{ ... },
comments:[
{
replier:{ ... }
},
...
]
},
...
]
}state范式化之后{ msgs:{ byId:{},allIds:[] }, comments:{ byId:{},allIds:[] }, replies:{ byId:{},allIds:[] }, users:{ byId:{},allIds:[] }
}看到这个结构思考了很久,UI上还是只能留言/评论/回复嵌套起来,然后我就非常疑惑,我该如何创建容器组件?如果我创建一个MessageList(留言列表)的容器组件,那它需要监听state中的 msgs/comments/replies/users的变化,而且我需要在MessageList中直接解析数据,传递给其子组件,CommentList(评论列表的UI组件)等等,这样就失去了范式化state的优势:传递ID代替传递数据。UI结构如下,最外层的是Message(单个留言),蓝色的是评论列表,粉色的是回复列表。我不知道我描述清楚我的问题了没,但是真的被卡住写不下去了。。求大神解救。。简单地说,就是我想知道这样的情况下,如何将state范式化用好?
添加回答
举报
0/150
提交
取消