问答题1288/1593React.PureComponent 和 React.Component 有什么区别?

难度:
2021-07-04 创建

参考答案:

PureComponent 和 Component的区别是:Component需要手动实现 shouldComponentUpdate,而 PureComponent 通过浅对比默认实现了 shouldComponentUpdate 方法。

浅比较(shallowEqual),即react源码中的一个函数,然后根据下面的方法进行是不是PureComponent的判断,帮我们做了本来应该我们在 shouldComponentUpdate 中做的事情

1if (this._compositeType === CompositeTypes.PureClass) { 2 shouldUpdate = !shallowEqual(prevProps, nextProps) || ! shallowEqual(inst.state, nextState); 3}

注意: 浅比较只比较了第一层,复杂数据结构可能会导致更新问题

总结: PureComponent 不仅会影响本身,而且会影响子组件,所以 PureComponent 最佳情况是展示组件

最近更新时间:2024-08-10

赞赏支持

预览

题库维护不易,您的支持就是我们最大的动力!