Изменения хотя бы одной зависимости достаточно, чтобы React после commit выполнил cleanup предыдущего эффекта и запустил новый setup.
Если у useEffect две зависимости, что будет происходить при изменении одной из них?
Изменения хотя бы одной зависимости достаточно, чтобы React после commit выполнил cleanup предыдущего эффекта и запустил новый setup.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Изменения хотя бы одной зависимости достаточно, чтобы React после commit выполнил cleanup предыдущего эффекта и запустил новый setup.
Зависимости сравниваются с предыдущим рендером через Object.is. Эффект видит значения текущего рендера, а cleanup замыкает предыдущие. Если обе зависимости изменились в одном commit, это не означает два независимых запуска. Для объекта важна ссылка: новый объект может вызвать эффект даже при одинаковых полях.