reducer为什么必须是纯函数?

2019-04-24  本文已影响0人  GGatsby

参考:

1、https://juejin.im/post/5c0398d3e51d453f32195571

2、https://zhuanlan.zhihu.com/p/38106353

理解:

1.redux源代码中将oldState和newState(reducer返回的结果)做比较,如果reducer为非纯函数,两者指向同一个地址,导致react认为state无变化,从而不更新页面。

2.这样做是牺牲一点计算性能(生成新对象)来保证页面刷新,在页面更新时使用react的diff算法来计算需要更新的组件。之所以这样设计,是为了避免在reducer中进行大量的深比较。

上一篇 下一篇

猜你喜欢

热点阅读