Что произойдёт при изменении URL, находящегося в зависимостях `useEffect`? В каком порядке выполняются cleanup-функция и новый effect?

После commit с изменившимся URL React сначала очищает предыдущий эффект, затем запускает новый с актуальными зависимостями.

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

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

После commit с изменившимся URL React сначала очищает предыдущий эффект, затем запускает новый с актуальными зависимостями.

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

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

Условие

Что произойдёт при изменении URL, находящегося в зависимостях useEffect? В каком порядке выполняются cleanup-функция и новый effect?

Ответ

После commit с изменившимся URL React сначала очищает предыдущий эффект, затем запускает новый с актуальными зависимостями.

Cleanup замыкает значения старого запуска и отменяет его ресурсы. Новый запрос не должен принимать поздние результаты старого: используйте abort и проверку актуальности. Само изменение URL не отменяет сеть автоматически.

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

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

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

Подробнее