Эффект устанавливает интервал после монтирования, а cleanup удаляет его при размонтировании. В Strict Mode разработки возможен дополнительный проверочный цикл установки и очистки.
Когда запускается эффект с пустыми зависимостями
Эффект устанавливает интервал после монтирования, а cleanup удаляет его при размонтировании. В Strict Mode разработки возможен дополнительный проверочный цикл установки и очистки.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Компонент React содержит useEffect(() => { const id = setInterval(tick, 1000); return () => clearInterval(id); }, []). Когда создаётся интервал и когда происходит очистка?
Ответ
Эффект устанавливает интервал после монтирования, а cleanup удаляет его при размонтировании. В Strict Mode разработки возможен дополнительный проверочный цикл установки и очистки.
Пустой массив исключает повторный запуск из-за обычного изменения props или state. Новый экземпляр компонента, например после смены key, снова выполнит эффект. Функция tick из первого render может замкнуть старые данные; при зависимости от текущих значений нужно пересмотреть зависимости или использовать функциональное обновление state.