Performance 应将React.PureComponent用于频繁更新的组件吗?
如果由于道具更改,组件需要每秒渲染几次,该组件是否应该扩展React.PureComponent 组件没有子组件,但是,它本身嵌套得很深。。。因此,道具会穿过其他几个部件Performance 应将React.PureComponent用于频繁更新的组件吗?,performance,reactjs,flux,Performance,Reactjs,Flux,如果由于道具更改,组件需要每秒渲染几次,该组件是否应该扩展React.PureComponent 组件没有子组件,但是,它本身嵌套得很深。。。因此,道具会穿过其他几个部件 一般来说,在决定是否使用反应元件时,需要考虑哪些关键事项。在哪些情况下使用不好 是的,这听起来像是PureComponent的一个好例子,因为您的组件不必要地频繁地使用相同的道具重新渲染 从React.component扩展的子组件将在其父组件每次调用render时调用render。相反,如果子组件是从PureComponen
一般来说,在决定是否使用反应元件时,需要考虑哪些关键事项。在哪些情况下使用不好 是的,这听起来像是PureComponent的一个好例子,因为您的组件不必要地频繁地使用相同的道具重新渲染 从React.component扩展的子组件将在其父组件每次调用
render
时调用render
。相反,如果子组件是从PureComponent扩展而来的,则当父组件传递的道具与先前传递的道具不相等时,它将只调用render
使用PureComponent通常是安全的,只要
- 您的组件及其子组件不依赖于
更新上下文
- 您的组件没有由其父组件直接变异的对象或数组道具(
不会检测到这些更改)shallowEqual
render
时调用render
。相反,如果子组件是从PureComponent扩展而来的,则当父组件传递的道具与先前传递的道具不相等时,它将只调用render
使用PureComponent通常是安全的,只要
- 您的组件及其子组件不依赖于
更新上下文
- 您的组件没有由其父组件直接变异的对象或数组道具(
不会检测到这些更改)shallowEqual
shallowEqual
的性能成本非常低,尤其是与render
相比,后者必须创建新元素并触发阴影DOM比较。如果您的所有组件实例几乎100%都获得不同的道具,那么请确保PureComponent
对性能的影响较小。但除此之外,这可能是一个净收益。谢谢,但我的意思是道具每秒有好几次不同的值。。。。如果渲染函数真的很简单,那么PureComponent是否值得一秒钟检查这么多次呢。此外,页面上还有数百个这些组件,所有这些组件都会随频率变化。shallowEqual
的性能成本非常低,尤其是与render
相比,后者必须创建新元素并触发阴影DOM比较。如果您的所有组件实例几乎100%都获得不同的道具,那么请确保PureComponent
对性能的影响较小。但除此之外,这可能是一个净收益。