После commit с изменившимся URL React сначала очищает предыдущий эффект, затем запускает новый с актуальными зависимостями.
Что произойдёт при изменении URL, находящегося в зависимостях `useEffect`? В каком порядке выполняются cleanup-функция и новый effect?
После commit с изменившимся URL React сначала очищает предыдущий эффект, затем запускает новый с актуальными зависимостями.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Что произойдёт при изменении URL, находящегося в зависимостях useEffect? В каком порядке выполняются cleanup-функция и новый effect?
Ответ
После commit с изменившимся URL React сначала очищает предыдущий эффект, затем запускает новый с актуальными зависимостями.
Cleanup замыкает значения старого запуска и отменяет его ресурсы. Новый запрос не должен принимать поздние результаты старого: используйте abort и проверку актуальности. Само изменение URL не отменяет сеть автоматически.