Когда срабатывает cleanup-функция в useEffect? Что происходит при маунте и при ререндере компонента?

Cleanup вызывается перед повторным запуском эффекта с изменившимися зависимостями и при размонтировании. Обычный ререндер без изменения зависимостей его не вызывает.

Короткий ответ

Что ответить на собеседовании

Cleanup вызывается перед повторным запуском эффекта с изменившимися зависимостями и при размонтировании. Обычный ререндер без изменения зависимостей его не вызывает.

Подробный разбор

Ответ с пояснениями

Cleanup вызывается перед повторным запуском эффекта с изменившимися зависимостями и при размонтировании. Обычный ререндер без изменения зависимостей его не вызывает.

При маунте React выполняет setup эффекта. Если зависимости изменились, сначала выполняется cleanup предыдущего setup, затем новый setup. При размонтировании выполняется последняя очистка. Без массива зависимостей эффект повторяется после каждого соответствующего commit; с пустым массивом не зависит от ререндеров. В development Strict Mode возможен дополнительный цикл setup–cleanup–setup для проверки корректности очистки.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее