Серверные компоненты
Вопрос
Что такое React Server Components и зачем они?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
выполняются только на сервере и не попадают в бандл
могут ходить в базу и читать файлы напрямую
у них нет состояния, эффектов и обработчиков
клиентские компоненты помечаются use client
серверный может рендерить клиентского, наоборот - только через children
выигрыш - размер бандла и меньше водопадов запросов
Что могут спросить следом
- Почему нельзя передать функцию как проп в клиентский компонент
- Как в RSC устроены мутации и server actions
- Когда RSC избыточны
Разбор
Серверный компонент выполняется на сервере, его код не попадает в клиентский бандл, и он может напрямую обращаться к базе или файловой системе. Результат приезжает на клиент в виде потока описаний, а не HTML.
У него нет состояния, эффектов и обработчиков - всё интерактивное выносится в клиентские
компоненты с директивой use client. Серверный компонент может отрендерить клиентского;
обратно - только передав серверный как children.
Выигрыш: тяжёлые библиотеки (разметка markdown, форматирование дат) остаются на сервере, а запросы к данным идут рядом с рендером, без водопада «загрузили бандл → запросили данные».
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «React 18-19: Suspense, transitions, RSC»
- Автоматический батчинг
- useDeferredValue и debounce
- Что делает React Compiler
- Функция из серверного компонента в клиентский
- RSC и SSR
- Что запускает Suspense
- Transition для значения поля
- use в условии