Ga naar inhoud
NR.Niels Rigter

Server Components uitgelegd

Server Components zijn geen buzzword-vervanging voor ‘gewoon React’. Ze veranderen waar code draait en hoeveel JavaScript de browser krijgt. Dit is het praktische kader.

Bijgewerkt 2026-08-02 · 9 min leestijd

Kort antwoord

In de Next.js App Router zijn componenten standaard Server Components: ze renderen op de server, kunnen data dicht bij de bron ophalen, en sturen geen eigen JS-bundle naar de client voor die logica.

Client Components (`'use client'`) heb je nodig voor state, effects, browsers-API’s en rijke interactie. Goede apps mixen beide bewust.

Wat lost dit op?

Minder JavaScript in de browser voor pagina’s die vooral data tonen. Geheimen en zware libraries kunnen op de server blijven. Data-fetching zit dichter bij rendering, met minder ‘fetch waterfall’-drama als je het goed structureert.

Het lost niet automatisch slechte queries of te zware client-widgets op. Architectuur blijft jouw verantwoordelijkheid.

Server vs Client: vuistregels

  • Server: data ophalen, layout, SEO-gevoelige content, auth-checks aan de rand
  • Client: formulieren met live validatie, charts met interactie, drag-and-drop, localStorage
  • Houd Client Components laag in de boom: push `'use client'` zo diep mogelijk
  • Deel geen server-only secrets of modules naar client-boundaries

Veelgemaakte misverstanden

‘Alles op de server is altijd sneller’: niet als je de server overbelast of caching vergeet. ‘Server Components vervangen een API’: soms wel voor je eigen UI, niet als andere clients dezelfde data nodig hebben.

‘use client’ betekent niet ‘geen SSR’: Client Components kunnen nog steeds op de server voorrenderen; ze nemen wél JS mee voor hydratie.

Praktische aanpak in een project

  1. 1. Start server-first

    Bouw pagina’s als Server Components tot interactie écht nodig is.

  2. 2. Isoleer interactie

    Kleine client-islands voor knoppen, filters, editors. Niet de hele page client maken.

  3. 3. Meet bundles

    Kijk welke libraries de client intrekken. Zware deps horen vaak server-side of lazy.

Wanneer het wringt

  • Te vroeg alles `'use client'` door oude Pages-gewoonte
  • Prop-drilling van serverdata door onnodig dikke client-bomen
  • Geen caching-strategie: elke request opnieuw zwaar werk
  • Team snapt boundaries niet: bugs en ‘window is not defined’

Wanneer ik kan helpen

Bouw of refactors je een Next.js-app en wil je Server Components goed inzetten zonder de UI te breken? Dan help ik met architectuur, performance en een migratiepad dat opleverbaar blijft.

In de App Router is het de default. Je kunt alles client doen, maar je levert vaak performance en eenvoud in data-fetching in.

Terug naar kennisbank