Вопрос проверяет понимание побочных эффектов и жизненного цикла функциональных компонентов.
useEffect нужен для выполнения побочных эффектов в функциональных компонентах. Он используется для работы с внешними системами: API, таймерами, подписками, DOM. useEffect выполняется после рендера компонента. С помощью массива зависимостей можно контролировать, когда эффект должен запускаться.
Функциональные компоненты сами по себе должны быть чистыми, а вся “побочная” логика выносится в useEffect.
Побочный эффект (side effect) — любая операция, которая взаимодействует с внешним миром или изменяет состояние вне текущего рендера.
Загрузка данных.
Подписки на события.
Таймеры и интервалы.
Работа с DOM.
Логирование.
useEffect(() => {
fetchData();
}, []);
Без массива — эффект вызывается после каждого рендера.
Пустой массив [] — эффект вызывается один раз.
С зависимостями — при изменении указанных значений.
useEffect(() => {
console.log(count);
}, [count]);
useEffect — основной инструмент для работы с побочными эффектами и управления жизненным циклом в функциональных компонентах.