Ответ вслух Middle React 18-19: Suspense, transitions, RSC обновлено

Серверные компоненты

Вопрос

Что такое React Server Components и зачем они?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Серверный компонент выполняется на сервере, его код не попадает в клиентский бандл, и он может напрямую обращаться к базе или файловой системе. Результат приезжает на клиент в виде потока описаний, а не HTML.

Что должно прозвучать в ответе

  • выполняются только на сервере и не попадают в бандл

  • могут ходить в базу и читать файлы напрямую

  • у них нет состояния, эффектов и обработчиков

  • клиентские компоненты помечаются use client

  • серверный может рендерить клиентского, наоборот - только через children

  • выигрыш - размер бандла и меньше водопадов запросов

Что могут спросить следом

  • Почему нельзя передать функцию как проп в клиентский компонент
  • Как в RSC устроены мутации и server actions
  • Когда RSC избыточны

Разбор

Серверный компонент выполняется на сервере, его код не попадает в клиентский бандл, и он может напрямую обращаться к базе или файловой системе. Результат приезжает на клиент в виде потока описаний, а не HTML.

У него нет состояния, эффектов и обработчиков - всё интерактивное выносится в клиентские компоненты с директивой use client. Серверный компонент может отрендерить клиентского; обратно - только передав серверный как children.

Выигрыш: тяжёлые библиотеки (разметка markdown, форматирование дат) остаются на сервере, а запросы к данным идут рядом с рендером, без водопада «загрузили бандл → запросили данные».

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.