我有一个相当复杂的React应用程序。我面临的问题是,当导航栏中的链接被点击时,导航栏会重新呈现。显然,这是一个迹象,表明该应用程序正在进行不必要的渲染。导航条存在于";标题";组成部分这个";标题";应该修复。但它被打了很多次电话。建议使用什么方法来判断组件渲染的原因。我能想到很多原因,我想开始消除它们,以减少不必要的渲染。组件可能是
- 更改内部状态(通过useState(
- 使用效果
- 认购";外部";状态通过useSelect
- 更换道具
可能还有其他人。如何告诉组件渲染的原因?
(显然(没有简单的方法来判断组件渲染的原因,可能是因为它本质上需要深入比较(至少涵盖所有情况(,这可能是一项昂贵的操作。
但是有很多工具和解决方法。
- 使用React dev工具(有帮助,但没有显示为什么有东西渲染(
- 临时添加useEffect以观察特定值
- 编写一个可以同时观察几个特定值的钩子
- 安装一些节点包
- 检出trace-why-a-react-components-is-re-rendering