Server Components
React Server Components (RSC) execute exclusively on the server, streaming zero client JavaScript bundle size to the browser.
Mental Model
"The Remote Cloud Kitchen: Meals are cooked and assembled in a centralized industrial kitchen, delivering ready-to-eat hot dishes straight to your door."
Interactive Engine Simulation
Executable Code Snippet
1// app/page.js (Server Component)
2async function Page() {
3 // Direct DB access!
4 // No 'useEffect' needed.
5 const posts = await db.posts.findMany();
6
7 return (
8 <ul>
9 {posts.map(p => <li key={p.id}>{p.title}</li>)}
10 </ul>
11 );
12}- 01.Component re-renders are triggered by state or prop changes.
- 02.Reconciliation algorithm diffs the Virtual DOM to minimize actual DOM updates.
- 03.Automatic batching optimizes multiple state updates into a single render cycle.
01. Zero-Bundle Size
React Server Components (RSC) are a new type of component that only runs on the server. Because they never reach the browser, their dependencies (like heavy Markdown or Date libraries) contribute **zero** to your client-side bundle size.
Execution Split
02. Server-side Logic
Server components can be `async` and can perform database queries or file system operations directly. This eliminates the "Fetch-Waterfalls" of traditional client-side apps where you fetch data in a nested chain of effects.
Architectural Advice
"Think of Server Components as the **Skeleton** of your app and Client Components as the **Muscles**. Use Server Components for layout, data fetching, and static content. Use Client Components only for state, effects, and event listeners."