一对多关系的Redux状态形状

mil*_*inx 6 redux normalizr react-redux

在设计具有相关实体的状态形状时,官方Redux文档建议通过ID而不是嵌套来引用:http://redux.js.org/docs/basics/Reducers.html#note-on-relationships.

在一对多关系中,Normalizr会将引用放在关系的"一"侧,例如:

"posts": {
  "1": {
    ...
    comments: ["1", "2", "3"]
...
Run Code Online (Sandbox Code Playgroud)

这比将参考文献放在"多"方面要好吗?例如

"comments": {
  "7": {
    ...
    postId: "1"
...
Run Code Online (Sandbox Code Playgroud)

创建Redux商店时,我在哪里放置引用是否重要?

Jul*_*ubé 3

我建议在帖子中保留评论 ID。

这样,对于任何给定的帖子,您都可以通过直接引用(索引或属性名称,这并不重要)来访问所有评论,这既快速又简单。这是 O(N) 的复杂度。

在相反的情况下,您必须在整个评论中搜索任何给定的帖子。这是 O(N^2) 的复杂度。另外,一旦你收到了所有评论,你就必须重新排序。