Если у useEffect две зависимости, что будет происходить при изменении одной из них?

Изменения хотя бы одной зависимости достаточно, чтобы React после commit выполнил cleanup предыдущего эффекта и запустил новый setup.

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

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

Изменения хотя бы одной зависимости достаточно, чтобы React после commit выполнил cleanup предыдущего эффекта и запустил новый setup.

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

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

Изменения хотя бы одной зависимости достаточно, чтобы React после commit выполнил cleanup предыдущего эффекта и запустил новый setup.

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

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

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

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

Подробнее