跳过 state 更新
调用 State Hook 的更新函数并传入当前的 state 时,React 将跳过子组件的渲染及 effect 的执行。(React 使用Object.is
比较算法来比较 state。)需要注意的是,React 可能仍需要在跳过渲染前渲染该组件。不过由于 React 不会对组件树的“深层”节点进行不必要的渲染,所以大可不必担心。如果你在渲染期间执行了高开销的计算,则可以使用
useMemo
来进行优化。
这里说hook每次更新state的时候跳过子组件的渲染及effect的执行,这个行为影响和之前class类中用this.setState()更新state有差别吗??
原文是
说的是当传入相同 state时,会不重复渲染
和this.setState应该是一个道理吧(没看过源码,不过从表现上看 是一样的)