Ответ
PureComponent автоматически реализует shouldComponentUpdate с поверхностным сравнением пропсов и состояния. Обычный Component всегда ререндерится при изменении пропсов или состояния, если не переопределить shouldComponentUpdate вручную.
Пример:
// Обычный компонент - ререндерится всегда
class NormalComp extends React.Component {
render() {
return <div>{this.props.value}</div>;
}
}
// PureComponent - ререндерится только при изменении пропсов/состояния
class PureComp extends React.PureComponent {
render() {
return <div>{this.props.value}</div>;
}
}
Ключевые отличия:
PureComponentделает shallow compare пропсов и состояния- Не используй
PureComponentесли пропсы/состояние часто меняются на новые объекты/массивы - Для функциональных компонентов аналог -
React.memo