advanced

Concurrent rendering concepts

Рассуждайте про прерываемый render, transitions, deferred values, Suspense и чистоту render.

Concurrent-возможности позволяют React прерывать, возобновлять или отбрасывать работу render, чтобы интерфейс оставался отзывчивым. `startTransition` помечает не срочные обновления; `useDeferredValue` отстаёт от быстро меняющегося ввода. Suspense координирует асинхронные границы UI с fallback.

Render должен оставаться чистым, потому что работа может выполняться более одного раза. Transitions не блокируют срочные обновления вроде набора в controlled-поле. На интервью ждут знания, что API существуют, когда они помогают большим деревьям и что нужен concurrent root.

На интервью объясняйте концепцию на конкретном примере и называйте поведение, которое проверяют.

Типовые ошибки: скрывать поток данных, дробить компоненты чрезмерно и выполнять побочные эффекты в render.

Компромисс часто между ясностью и переиспользованием или между явными props и удобством.

Чеклист:

  • Срочные обновления против transition.
  • Suspense для асинхронных границ компонентов.
  • Чистота render сохраняется при concurrent render.