Что выполнится раньше: `useMemo` или `useEffect`? В каких фазах React они выполняются — render phase или commit phase?

useMemo вычисляется во время render, а useEffect запускается после commit соответствующего результата.

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

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

useMemo вычисляется во время render, а useEffect запускается после commit соответствующего результата.

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

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

useMemo вычисляется во время render, а useEffect запускается после commit соответствующего результата.

Если render был отброшен, его effect не обязан выполняться. useMemo должен быть чистым, эффект синхронизирует внешние ресурсы. Порядок относительно browser paint у эффектов зависит от ситуации, поэтому «всегда после отрисовки экрана» — слишком сильное утверждение.

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

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

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

Подробнее