【发布时间】:2020-06-08 19:23:38
【问题描述】:
假设我们有一个父组件和多个功能性子组件。我想清楚地知道父母是否重新渲染孩子是否重新渲染。
在阅读了几篇文章后,我了解到有 3 种方法可以检测重新渲染。 (如果有更多方法,请告诉我。)
1.在子组件中放入console.log。
2。在设置中使用 Chrome 油漆闪烁选项。
3.使用 React 开发工具
是否所有这些方法都可以正确判断组件是否真的重新渲染?因为它似乎不适用于 React.memo。
当我用 React.memo 包装子组件时,它不会打印 console.log,当父组件重新呈现时这是正确的。但仍然使用 chrome 和 react 开发工具突出显示子组件,就好像它重新渲染一样。
代码沙盒:https://codesandbox.io/s/bold-cloud-iv0rv (如果我们添加一辆新车,静态组件仍以绿色突出显示,但根据备忘录,它不应该重新渲染。)
现在我怀疑,是油漆闪烁不能正常工作还是 React.memo 有问题?
【问题讨论】:
-
您确定可以在您的沙盒控制台中看到正在打印的日志吗...
-
@pavankumar,对于第一次渲染,它肯定会打印出来,但是如果组件用 React.memo 包裹,当点击添加按钮时,它不会为后续渲染打印 console.log。
标签: javascript reactjs rerender virtual-dom react-devtools