Серверный компонент выполняется на сервере (при сборке или на запрос), может напрямую читать базу или файлы и отправляет клиенту готовый результат — без своего JavaScript. Клиентские компоненты ("use client") работают как привычный React: состояние, эффекты, обработчики.
Что важно знать
- Серверные компоненты не могут использовать
useState,useEffectи обработчики событий. - Серверный компонент может отрисовать клиентский, но не наоборот — только передать серверный как
children. - Props на границе должны сериализоваться: функции передать нельзя (кроме Server Actions).
- Выигрыш — меньше JavaScript в браузере и данные без «водопада» запросов; цена — новая ментальная модель и зависимость от фреймворка.
- Отличие от SSR: SSR рендерит в HTML любые компоненты, а серверные компоненты вообще не гидратируются.