哪些东西应该放在reducer里面
不要复杂化ruducer
只有需要共享的才放进去
域数据
1:不要复杂化reducer 是指 不要所有的东西都放在redux里面
2:根据第一条,只有多个组件用到的数据才需要放入 redux里面,有的人 会说,把组件的ui状态放入redux 是方便管理,我认为 如果你需要在另外一个组件控制这个组件,那把这个组件的ui状态放入state自然是可以的,这遵循只有共享的数据才放入redux的原则,但是 一股脑的把所有的ui状态都放进去 只会增加redux的复杂性很很多不必要的代码
3:域数据,与ui状态相比,域数据被多个组件共同访问的几率要大大高于组件内部ui状态,所以 域数据应该放入redux
reducer如何调用其他reducer数据?
像id关联查询这些,或者数据库中的多表关联查询,和多表批量操作,这些在redux中如何实现?
redux希望我们以关系型数据的方式设计state,但是如果以关系型数据库的方式设计state,那就涉及到 多个reducer的并处理和顺序处理。但是reducer要求是纯函数,很显然 我们不可能在函数里面 去调用其他reducer,所以 唯一的操作路径 就是在容器组件里面 拿到其他reducer的数据,然后放入action中。至于并处理,则可以通过多个reducer响应一个action来做到。
业务逻辑在哪里?
业务逻辑 是指,根据业务逻辑对数据进行的处理,这里要区分一下 组件内部的逻辑不属于业务逻辑,因为展示型组件是通用的,所以很显然 业务逻辑在redux里面,然而 redux的ruducer只可能处理非常简单的业务逻辑,这也是为什么加了一个选择器的原因,选择器的出现 解决了 在获取数据的时候 应对 复杂数据结构的问题,那么 操作的时候,这种复杂的数据处理写在哪里呢?关于操作的时候分为两种情况,同步 和异步
同步:通过多个reducer监听同一个action来达到目的
异步:引入saga来处理
来源:https://www.cnblogs.com/mrzhu/p/12510626.html