提示:部分来自于网络,有错误请指出
Redux 希望在store 中放置的数据是扁平化的
Redux鼓励你尽可能地使你的状态变得平坦 . 使用按项目ID键入的对象允许直接查找项目,使用ID数组表示排序,以及一个项目需要引用另一个项目的任何地方,它只存储其他项目的ID而不是实际数据 . 这允许您进行更简单的查找和嵌套对象的更新 . 见the
Redux FAQ question on nested data .
Redux 不希望在store 中放置函数 promise 等不可序列化项目
在Redux状态下存储许多函数 . 从技术上讲,这是可行的,但它却非常不推荐的 . Redux FAQ提供了有关why storing non-serializable values in your Redux state is a bad idea的更多信息
reducer 不可变更新
不可变更新的一个关键规则是,您必须复制需要更新的每一层嵌套。
使用 immer可以让你 reducer 中轻松完成这一实现
dva中
dva: { immer: true, },
注:如需兼容 IE11,需配置 { immer: { enableES5: true }}。