当一个组件被创建时,this.state被定义。然后,在调用 setState 之后,React 以某种方式将旧状态和新状态拆分为两个对象。例如使用钩子 shouldComponentUpdate 我们可以像这样区分这两个状态:
shouldComponentUpdate(nextProps, nextState) { return (this.state.foo != nextState.foo); }
我从 github 下载了 React 源代码,我找到了调用这些函数的位置,但很快就变得很难跟踪发生了什么。我从来没有发现这种分裂(或者他们实现了这种行为)发生在哪里。我确实发现 React 曾经/可以使用浅比较来区分状态,所以我想知道他们是否只是简单地克隆状态对象,然后将更新的值合并到其中一个中,以便以后可以比较它们两个。它是否正确?在这种情况下,如何处理嵌套结构?还是他们使用某个版本的 get/set 和/或某个版本的代理 API 以某种方式捕获更改?
aluckdog
MMTTMM
相关分类