React Server Components (RSC) — компоненты, рендерящиеся только на сервере. Не попадают в client bundle → меньше JS на клиенте. Могут быть async (fetch прямо в компоненте). Next.js 13+ App Router — default RSC. Paradigm: data fetching рядом с UI, streaming через Suspense, client components только где нужна интерактивность (use client).
Ниже: подробности, пример, смежные термины, FAQ.
// app/posts/page.tsx (Server Component)
async function PostList() {
const posts = await db.post.findMany(); // direct DB access
return posts.map(p => <Post key={p.id} {...p} />);
}
// Client component
'use client';
function LikeButton({ postId }) {
const [liked, setLiked] = useState(false);
return <button onClick={() => setLiked(true)}>♥</button>;
}Classic SSR: render HTML на сервере + hydrate весь React client-side. RSC: серверные компоненты НЕ hydrate, только клиентские = меньше JS.
Когда нужен useState, useEffect, onClick, onChange. Всё остальное — по умолчанию server.
Next.js 13+ (App Router) — production. Remix — planned. Vanilla React — нет (нужен bundler + framework).