react hook 官网对useState的一个介绍,有一点没看懂
跳过 state 更新
调用 State Hook 的更新函数并传入当前的 state 时,React 将跳过子组件的渲染及 effect 的执行。(React 使用Object.is
比较算法来比较 state。)需要注意的是,React 可能仍需要在跳过渲染前渲染该组件。不过由于 React 不会对组件树的“深层”节点进行不必要的渲染,所以大可不必担心。如果你在渲染期间执行了高开销的计算,则可以使用
useMemo
来进行优化。
这里说hook每次更新state的时候跳过子组件的渲染及effect的执行,这个行为影响和之前class类中用this.setState()更新state有差别吗??
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
原文是
说的是当传入相同 state时,会不重复渲染
和this.setState应该是一个道理吧(没看过源码,不过从表现上看 是一样的)
就是一个默认地浅比较,说白了就是shouldComponentUpdate的默认实现。