美文网首页
reducer为什么必须是纯函数?

reducer为什么必须是纯函数?

作者: GGatsby | 来源:发表于2019-04-24 10:57 被阅读0次

参考:

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中进行大量的深比较。

相关文章

  • reducer为什么必须是纯函数?

    参考: 1、https://juejin.im/post/5c0398d3e51d453f32195571 2、h...

  • Redux笔记

    state值变了,但是组件没被渲染? reducer是一个纯函数,不能在reducer直接修改state。redu...

  • Reducer 最佳实践,Redux 开发最重要的部分

    reducer就是实现(state, action) => newState的纯函数,也就是真正处理state的地...

  • 1-Redux

    Redux [TOC] 知识点 状态管理器 state 对象 reducer 纯函数 store 对象 actio...

  • react中使用redux

    明确概念: Reducer 是一个纯函数,接收旧的state和action,返回新的state 与被传入Array...

  • React学习之Redux高阶运用

    在Redux架构中,reducer是一个纯函数,它的职责是根据previousState和action计算出新的s...

  • 前端面试题

    redux action、reducer的抽象特点和注意:纯函数,不能new date()或者随机数*高阶组件 c...

  • C++语言-多态,纯虚函数,模版函数

    1、虚函数、纯虚函数 需要注意的是,纯虚函数子类是必须继承的,虚函数不是不必须继承的。 2、多态 在C++中默认关...

  • 深入浅出redux知识

    redux状态管理的容器。 开始使用 reducer函数需要判断动作的类型去修改状态,需要注意的是函数必须要有返回...

  • 实战+源码 带你快速掌握React Hooks

    大纲 ? 函数式编程? 什么是纯函数? 什么是副作用(Effect)? 为什么要使用纯函数 ? React函数组件...

网友评论

      本文标题:reducer为什么必须是纯函数?

      本文链接:https://www.haomeiwen.com/subject/xapwgqtx.html