"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 只是一个接收 stateaction,并返回新的 state 的函数。

PS:写作不易,如要转裁,请标明转载出处。

微信小程序:前端开发宝典

猜你想看
如何 React.createElement ?
为什么虚拟 dom 会提高性能?
useMemo & useCallback的作用是什么?
登录
注册
回顶部