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
的函数。
微信小程序:前端开发宝典