React Server Components mit Claude Code: RSC und Suspense 2026

React Server Components sind die fundamentalste Änderung in React seit Hooks — serverseitiges Rendering mit Zero Bundle Size, direkter Datenbankzugriff ohne API, Streaming Suspense und Server Actions. Claude Code navigiert die neue RSC-Architektur vollständig.

Server Components vs. Client Components

ServerDie neue Grenze: Server vs. Client

# Prompt: "Erkläre wann ich Server Component vs. Client Component nutze # und implementiere ein Dashboard mit beiden" // app/dashboard/page.tsx — Server Component (DEFAULT in Next.js App Router) // Kein 'use client' = Server Component import { db } from '@/lib/db' import { InteractiveChart } from './InteractiveChart' // Client Component export default async function DashboardPage() { // Direkter DB-Zugriff — kein API-Endpoint nötig! const stats = await db.query.orders.findMany({ where: eq(orders.status, 'completed'), orderBy: desc(orders.createdAt), limit: 30 }) return ( <div> <h1>Dashboard</h1> {/* Server-gerenderte Statistiken */} <StatsGrid stats={stats} /> {/* Client Component für Interaktivität */} <InteractiveChart data={stats} /> </div> ) } // app/dashboard/InteractiveChart.tsx — Client Component 'use client' // ← Explizit als Client markieren import { useState } from 'react' import { LineChart } from 'recharts' export function InteractiveChart({ data }: Props) { const [range, setRange] = useState('7d') // useState, useEffect, Event Handlers: nur in Client Components! return <LineChart data={filteredData(data, range)} /> }
RSC Entscheidungsbaum: Braucht die Komponente useState/useEffect/onClick? → Client. Greift sie auf DB/Filesystem zu oder ist sie statisch? → Server. Claude Code entscheidet das automatisch richtig bei korrektem Prompt.

Suspense und Streaming SSR

SuspenseStreaming für bessere Performance

# Prompt: "Implementiere Streaming mit Suspense für langsame Datenbankabfragen" // app/products/page.tsx import { Suspense } from 'react' import { ProductList, ProductListSkeleton } from './components' import { RecommendationPanel } from './recommendations' export default function ProductsPage() { return ( <div> <h1>Produkte</h1> {/* Schnell: sofort gestreamt */} <Suspense fallback={<ProductListSkeleton />}> <ProductList /> {/* async Server Component */} </Suspense> {/* Langsam: eigener Suspense-Boundary */} <Suspense fallback={<div>Empfehlungen laden...</div>}> <RecommendationPanel /> </Suspense> </div> ) } // ProductList — async Server Component async function ProductList() { // await hier = Suspense Boundary aktiviert Skeleton const products = await fetchProducts() // kann 200ms dauern return <ul>{products.map(p => <ProductCard key={p.id} {...p} />)}</ul> } # Ergebnis: Browser zeigt sofort Skeleton, Produkte streamen rein wenn fertig

Server Actions: Formulare ohne API

ActionsServerseitige Mutations direkt in Komponenten

# Prompt: "Erstelle ein Formular zum Erstellen eines Produkts mit Server Action" // app/products/new/page.tsx 'use server' async function createProduct(formData: FormData) { 'use server' // ← Diese Funktion läuft NUR auf dem Server const name = formData.get('name') as string const price = Number(formData.get('price')) // Validation const result = ProductSchema.safeParse({ name, price }) if (!result.success) { return { error: result.error.flatten() } } // Direkter DB-Zugriff — kein API-Endpoint! await db.insert(products).values(result.data) revalidatePath('/products') // Cache invalidieren redirect('/products') } export default function NewProductPage() { return ( {/* action={createProduct}: kein onSubmit, kein fetch! */} <form action={createProduct}> <input name="name" required /> <input name="price" type="number" required /> <button type="submit">Erstellen</button> </form> ) }
Server Action Sicherheit: Server Actions sind öffentlich erreichbare Server-Endpunkte. Claude Code fügt automatisch Auth-Checks hinzu: const session = await getSession(); if (!session) throw new Error('Unauthorized')

React-Modul im Kurs

Im Claude Code Mastery Kurs: vollständiges RSC-Modul mit Server Components, Client Components, Suspense-Streaming, Server Actions, Caching-Strategien und der neuen React-Architektur.

14 Tage kostenlos testen →