> Что происходит в useEffect при передаче пустого массива, отсутствия зависимостей или конкретных зависимостей (React)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Иннотех, Альфа-банк, Консорциум кодекс, VK
Стек: React
> Пример ответа
useEffect - это хук в React, который выполняет побочные эффекты после рендера компонента. Поведение зависит от массива зависимостей:
-
Пустой массив
[]: Эффект выполняется один раз после первого рендера (монтирования) и больше не запускается. Используется для инициализации, подписок или запросов, которые не должны повторяться. -
Отсутствие массива зависимостей: Эффект выполняется после каждого рендера (включая первый). Это может привести к бесконечному циклу, если внутри изменяется состояние, поэтому используется редко, например, для логирования.
-
Конкретные зависимости
[dep1, dep2]: Эффект выполняется после первого рендера и каждый раз, когда хотя бы одна из зависимостей изменяется. Это оптимальный способ синхронизации с данными (например, обновление списка при измененииid).
Примеры:
JAVASCRIPT// Пустой массив - один разuseEffect(() => { fetchData(); }, []);// Без массива - каждый рендерuseEffect(() => { console.log('render'); });// С зависимостями - при измененииuseEffect(() => { updateUser(id); }, [id]);
Важно: не передавай объекты или функции напрямую без стабилизации (useCallback/useMemo), иначе эффект будет срабатывать чаще из-за новых ссылок.
> Похожие задачи по frontend
Зачем указывать ключи в списках React и как они работают
Как работает хук useState в React и на что он влияет
Что такое React Context и как работает хук useContext
Что такое reconciliation в React и как он работает
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью