Проверяет понимание механизма ререндера в React при вызове setState и его влияния на дочерние компоненты.
Когда вы вызываете setState в родительском компоненте, React помечает этот компонент как 'грязный' и планирует его ререндер. Во время следующего рендера React создает новое виртуальное DOM-дерево для родителя и всех его дочерних элементов. По умолчанию дочерние компоненты также ререндерятся, даже если их пропсы остались прежними.
React не сравнивает пропсы автоматически — он просто вызывает функцию рендера для каждого дочернего компонента. Это гарантирует, что UI всегда синхронизирован с состоянием, но может быть избыточным. Например:
function Parent() {
const [count, setCount] = useState(0);
return (
<div>
<button onClick={() => setCount(count + 1)}>Click</button>
<Child />
</div>
);
}
function Child() {
console.log('Child re-rendered');
return <div>Static content</div>;
}При каждом клике Child будет выводить сообщение, хотя его содержимое не меняется.
Понимание этого механизма важно для написания производительных React-приложений. Используйте React.memo для компонентов, которые часто ререндерятся без изменения пропсов, и избегайте передачи новых объектов или функций при каждом рендере без необходимости.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию