我应该使用sysexponentupdate



最近,我意识到,当父母更改均匀的道具和状态时,孩子组件总是重新呈现。这使我的项目变得如此慢。因此,我使用shouldComponentupdate修复了这一点。但是,我真的应该使用它吗?

如果我应该使用它。有什么方法可以将其应用于React-hook

这是我的shouldComponentupdate

中的代码
shouldComponentupdate(nextProps, nextState){
if(JSON.stringify(nextProps) !== JSON.stringify(this.props) ||
JSON.stringify(nextState) !== JSON.stringify(this.state)
){
 return true
}
return false
}

非常感谢!

基于您只是将当前的道具/状态与先前的道具/状态进行比较,您应该能够删除shouldComponentUpdate并使用Purecomponent。唯一的区别是Purecomponent进行浅道具/状态检查,而您正在使用JSON.STRINGIFY进行深度价值相等检查,因此您应确保浅层检查仍在进行优化。

class MyComponent extends PureComponent { // No need for shouldComponentUpdate

功能组件的等效功能(包括使用钩子的组件(是React.memo。

function MyComponent(props) {
  ...
}
export default React.memo(MyComponent);

父母组件的重新渲染将始终触发其所有子女组件的重新渲染。因此,在儿童组件中实现shouldComponentUpdate不会有帮助。

您可以使用的一种解决方案是将当前的Prop/parent Component委托给较低的支柱/状态,即听取道具并在儿童组件上渲染UI,并让父母组件跟踪更少的项目。

相关内容

  • 没有找到相关文章

最新更新