gpt4 book ai didi

Redux:组合关系需要状态规范化吗?

转载 作者:行者123 更新时间:2023-12-04 01:56:12 27 4
gpt4 key购买 nike

众所周知,在 redux 存储中保存数据时,应该将其转换为规范化状态。因此,嵌入的对象应该由它们的 id 替换并保存在商店的专用集合中。

我想知道,如果关系是组合,是否也应该这样做?这意味着, 嵌入的数据在父对象 之外没有任何用途。

在我的情况下,嵌入的对象是注册,而父对象是(现实生活中的)事件。对我来说,标准化这个数据结构感觉就像很多样板,没有任何好处。

最佳答案

状态规范化不仅仅是通过遍历对象树来访问数据的方式。它还与您观察数据的方式有关。

规范化的部分原因是为了避免不必要的更改通知。对象被视为不可变的,因此当它们更改时会创建一个新对象,以便快速引用检查可以指示对象中的某些内容是否发生了更改。如果您嵌套对象并且子对象发生更改,则您应该更改父对象。如果某些代码正在观察父级,那么它会在每次子级更改时收到更改通知,即使它可能不在乎。因此,根据您的情况,您最终可能会收到一堆不必要的更改通知。

这也是您看到实体列表分解为标识符数组和对象映射的部分原因。关于更改检测,这允许您观察列表(是否添加或删除了项目)而无需关心实体本身的更改。

所以这取决于你的使用。请注意观察的成本以及您的状态形状对此的影响。

关于Redux:组合关系需要状态规范化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50430460/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com