我必须使用将状态更新为动画的组件。为了提高性能,我添加了
shouldComponentUpdate(prevProps) {
return !isEqual(prevProps.properties, this.props.properties)
}
其子组件。
properties
是具有多达20个属性的对象。
这种显着提高的性能,但是,isEqual
运行这么多是相当昂贵的(每秒高达60x)。
记住它是否有意义,还是在检查对象是否相同时在每个渲染器上运行isEqual
较轻松的选择?
答案 0 :(得分:1)
记住isEqual
没什么用,因为它的参数already does strict equality check。如果为prevProps.properties === this.props.properties
,则不会有性能损失。
为了提高shouldComponentUpdate
的性能并避免进行深入的相等性检查,properties
prop应该是不可变的,并应使用严格的相等性检查:
shouldComponentUpdate(prevProps) {
return prevProps.properties !== this.props.properties;
}