Cleanup выполнится перед следующим setup эффекта, если изменилось хотя бы одно из a, b, c, и при размонтировании компонента.
У useEffect есть функция cleanup и массив зависимостей с параметрами a, b, c. В какой момент отработает функция cleanup?
Cleanup выполнится перед следующим setup эффекта, если изменилось хотя бы одно из a, b, c, и при размонтировании компонента.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Cleanup выполнится перед следующим setup эффекта, если изменилось хотя бы одно из a, b, c, и при размонтировании компонента.
React сравнивает зависимости с предыдущими через Object.is. Cleanup замыкает значения того setup, к которому относится, поэтому освобождает предыдущую подписку или ресурс. Ререндер с прежними зависимостями сам по себе его не запускает. В development Strict Mode предусмотрен дополнительный проверочный цикл эффекта.