React Academy · leksjon

React Server Components forklart

Forstå hva RSC-er er, hvordan de skiller seg fra klientkomponenter, og når du bør bruke hver av dem.

Leksjon 1 av 413 trinn

React Server Components forklart er en gratis leksjon i React Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i React Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i React Academy inneholder totalt 4 leksjoner.

Velkommen

I denne leksjonen skal du lære hva React Server Components (RSC-er) er, hvordan de skiller seg fra klientkomponenter, og når du bør bruke hver type.

De to komponentverdenene

React 19 og Next.js App Router deler komponenter inn i to verdener: **Server Components** (gjengis på serveren, uten interaktivitet) og **Client Components** (gjengis både på serveren og klienten, og har state og event handlers).

Server Components som standard

I Next.js App Router er alle komponenter Server Components som standard. Du velger Client Component-modus ved å legge til 'use client' øverst 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

Legg til 'use client' øverst i en fil for å gjøre den til en Client Component. Client Components kan bruke useState, useEffect, event handlers og nettleser-API-er.
'use client';
import { useState } from 'react';

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

Hva Server Components kan gjøre

Server Components kan: vente på database-queries med await, lese filsystemet, få tilgang til miljøhemmeligheter, importere store server-only-pakker og gjengis uten at JavaScript sendes til 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>;
}

Begrensninger i Server Components

Server Components KAN IKKE: bruke useState, useEffect, event handlers (onClick osv.), nettleser-API-er (window, localStorage) eller Context. Dette krever 'use client'.

Sette sammen Server og Client Components

Det vanlige mønsteret er at en Server Component henter data og sender dem til en Client Component som props. Serveren håndterer dataene, mens klienten håndterer interaksjon.
// 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)} />;
}

Regelen for klientgrensen

Når du merker en fil med 'use client', behandles alle importerte komponenter også som client components. Grensen mellom server og klient går på filnivå.

Ingen JavaScript for Server Components

Server Components gjengis som HTML på serveren. Komponentkoden deres sendes ALDRI til nettleseren. Dette reduserer størrelsen på JavaScript-bunten betydelig.

Server Components kontra SSR

Tradisjonell SSR gjengir en hel side som HTML, men sender all komponentkoden til klienten for hydrering. Server Components sender aldri koden sin til klienten — bare resultatet de er gjengitt som.

Hurtigsjekk

Hvilket direktiv legger du til i en fil for å gjøre den til en React Client Component i Next.js App Router?

Oppsummering

Server Components kjører på serveren, kan få tilgang til databaser og hemmeligheter og sender ingen JS til klienten. Client Components legger til 'use client' og støtter state, effects og event handlers. Sett dem sammen slik: serveren henter data, klienten håndterer interaksjon.

Neste

Neste leksjon: **The use() Hook for Async Resources** — du skal lese promises og context under rendering med React 19-hook-en use().
Gratis å komme i gang

Lær deg React med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
88
Leksjoner
324

Ofte stilte spørsmål

Er leksjonen «React Server Components forklart» gratis?

Ja – hele teksten i «React Server Components forklart» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av React Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i React Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «React Server Components forklart»?

Forstå hva RSC-er er, hvordan de skiller seg fra klientkomponenter, og når du bør bruke hver av dem. Du øver på React Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med React Academy?

Ingen tidligere erfaring er nødvendig. React Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «React Server Components forklart»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne React Academy-leksjonen?

Ja. Alle React Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. React Server Components forklart
  2. use()-hooken for asynkrone ressurser
  3. React Actions og useActionState
  4. useOptimistic for umiddelbar tilbakemelding
← Tilbake til React Academy