As props podem mudar por si próprias? Existe alguma forma de fazer com que um componente seja renderizado apenas quando as props mudarem?
sobes.tech IA
Resposta da IA
Пропсы (props) в React сами по себе не изменяются — они являются неизменяемыми (immutable) с точки зрения компонента, который их получает. Изменение пропсов происходит только сверху, в родительском компоненте, который передаёт эти пропсы.
Чтобы компонент рендерился только при изменении пропсов, можно использовать:
-
React.memo— обёртка для функциональных компонентов, которая мемоизирует результат рендера и повторно рендерит компонент только если пропсы изменились по поверхностному сравнению. -
Для классовых компонентов —
shouldComponentUpdateилиPureComponent, которые позволяют контролировать, когда компонент должен обновиться.
Пример с React.memo:
const MyComponent = React.memo(function MyComponent(props) {
// компонент перерисуется только если props изменились
return <div>{props.value}</div>;
});
Таким образом, пропсы не меняются сами по себе, а компонент можно оптимизировать, чтобы он обновлялся только при изменении пропсов.