Какие значения возвращает hook до первого эффекта

Первый render получит data=null, loading=false и error=null. Эффект не выполняется внутри этого render; изменение loading вызовет последующее обновление.

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

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

Первый render получит data=null, loading=false и error=null. Эффект не выполняется внутри этого render; изменение loading вызовет последующее обновление.

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

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

Условие

Hook создаёт data через useState(null), loading через useState(false), error через useState(null). В эффекте он ставит loading=true и запускает запрос. Что получит компонент при первом render?

Ответ

Первый render получит data=null, loading=false и error=null. Эффект не выполняется внутри этого render; изменение loading вызовет последующее обновление.

Если интерфейс должен сразу показывать загрузку, задайте подходящее начальное состояние либо отдельный статус idle. Не считайте initial false доказательством завершённого запроса. Удобно различать idle, loading, success и error, чтобы пустой успешный результат не путался с отсутствием данных до старта.

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

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

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

Подробнее