redux reducer为什么不能修改state?
redux reducer为什么不能修改state?
在 redux 的设计体系中 只有 reducer 才是合理更新状态的方式 每当触发一个 action 时,就会通过 reducer 执行一个纯函数 返回一个新的 state所谓纯函数 是指函数的执行结果只依赖于它的入参 无论这个函数执行多少次 结果都是可预期的。
在 redux 中,这个执行结果是一个新的 state(A),入参则是原 state(B) 和 action 带过来的 payload ,所谓不可变 就是说这个纯函数并不会直接修改原 state(B) ,它只会返回一个全新的对象(A) 组件在重新 render 时 使用的是 A 而再也不会跟B有任何关联。
简单的讲:reducer 只是一个接收 state 和 action,并返回新的 state 的函数。
微信小程序:前端开发宝典