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