React Academy · Lektion

React Server Components förklarade

Förstå vad RSC:er är, hur de skiljer sig från klientkomponenter och när de bör användas.

Lektion 1 av 413 steg

React Server Components förklarade är en gratis lektion i React Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för React Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i React Academy innehåller totalt 4 lektioner.

Välkommen

I den här lektionen lär Du Dig vad React Server Components (RSC:er) är, hur de skiljer sig från klientkomponenter och när Du ska använda respektive typ.

De två komponentvärldarna

React 19 och Next.js App Router delar upp komponenter i två världar: **Server Components** (renderas på servern, ingen interaktivitet) och **Client Components** (renderas både på servern och klienten, har state och event handlers).

Server Components som standard

I Next.js App Router är varje komponent en Server Component som standard. Du väljer Client Component-läge genom att lägga till 'use client' högst upp i filen.
// Server Component (default, no directive needed)
export default async function Page() {
  const data = await fetch('/api/posts').then(r => r.json());
  return <ul>{data.map(p => <li key={p.id}>{p.title}</li>)}</ul>;
}

Client Components

Lägg till 'use client' högst upp i en fil för att göra den till en Client Component. Client Components kan använda useState, useEffect, event handlers och webbläsar-API:er.
'use client';
import { useState } from 'react';

export function Counter() {
  const [n, setN] = useState(0);
  return <button onClick={() => setN(n+1)}>{n}</button>;
}

Server Components funktioner

Server Components kan invänta databasfrågor med await, läsa filsystemet, komma åt miljöhemligheter, importera stora serverspecifika paket och rendera utan att någon JavaScript skickas till klienten.
// Fetch from DB directly in the component!
import { db } from '@/lib/db';

export default async function UserList() {
  const users = await db.select().from(usersTable);
  return <ul>{users.map(u => <li key={u.id}>{u.name}</li>)}</ul>;
}

Server Components begränsningar

Server Components kan INTE använda useState, useEffect, event handlers (onClick med mera), webbläsar-API:er (window, localStorage) eller Context. Detta kräver 'use client'.

Kombinera Server och Client Components

Det vanliga mönstret är att en Server Component hämtar data och skickar den till en Client Component som props. Servern hanterar data och klienten hanterar interaktion.
// Server Component
export default async function Page() {
  const user = await getUser();
  return <ProfileEditor user={user} />; // client component
}

// Client Component (separate file)
'use client';
export function ProfileEditor({ user }) {
  const [name, setName] = useState(user.name);
  return <input value={name} onChange={e => setName(e.target.value)} />;
}

Regeln för klientgränsen

När Du markerar en fil med 'use client' behandlas alla komponenter som importeras av den också som klientkomponenter. Gränsen mellan server och klient går på filnivå.

Noll JavaScript för Server Components

Server Components renderas till HTML på servern. Deras komponentkod skickas ALDRIG till webbläsaren. Det minskar JavaScript-bundlens storlek betydligt.

Server Components kontra SSR

Traditionell SSR renderar en hel sida till HTML men skickar all komponentkod till klienten för hydrering. Server Components skickar aldrig sin kod till klienten — endast det renderade resultatet.

Snabb kontroll

Vilket direktiv lägger Du till i en fil för att göra den till en React Client Component i Next.js App Router?

Sammanfattning

Server Components körs på servern, kan komma åt databaser och hemligheter och skickar ingen JS till klienten. Client Components använder 'use client' och stöder state, effects och event handlers. Kombinera dem: servern hämtar data och klienten interagerar.

Nästa steg

Nästa lektion: **use()-hooken för asynkrona resurser** — Du kommer att läsa promises och context vid rendering med React 19-hooken use().
Gratis att börja

Lär dig React med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
88
Lektioner
324

Vanliga frågor

Är lektionen ”React Server Components förklarade” gratis?

Ja – hela texten till ”React Server Components förklarade” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i React Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i React Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”React Server Components förklarade”?

Förstå vad RSC:er är, hur de skiljer sig från klientkomponenter och när de bör användas. Ni övar på React Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig React Academy?

Du behöver inga förkunskaper. Utbildningen i React Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”React Server Components förklarade”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här React Academy-lektionen?

Ja. Varje React Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. React Server Components förklarade
  2. use()-hooken för asynkrona resurser
  3. React Actions och useActionState
  4. useOptimistic för omedelbar återkoppling
← Tillbaka till React Academy