Hydration: Definition, Prozess, Performance-Tradeoffs

Hydration ist der Prozess, bei dem Client-JS sich an server-rendered HTML attached — macht statisches Markup interaktiv. Teuer; hurts INP.

Was ist Hydration?

Hydration ist der Prozess, bei dem JavaScript auf dem Client sich an server-rendered HTML "attacht", statisches Markup in eine interaktive Anwendung verwandelt. Nach SSR sendet der Server HTML an den Browser, das JS-Bundle downloaded, parsed und re-runs den Component-Tree, um Event-Handler zu attachen, State zu restoren und die Page interactive zu machen.

Hydration ist fundamental für SSR-basierte Frameworks. Es ist auch der primäre Cost von SSR — schwere Hydration ist die Leading-Cause für poor INP.

Die Hydration-Sequence

  1. Server rendert HTML und sendet zum Browser
  2. Browser zeigt HTML an
  3. Browser lädt JS-Bundle
  4. JS parsed + executet
  5. JS walked das existing DOM, matched Elements zu Components
  6. JS attacht Event-Handler, initialisiert State
  7. Page ist jetzt actually interactive

Warum Hydration langsam ist

  • Entire Component-Tree re-runs.
  • JS-Bundle-Size.
  • Synchronous auf Main-Thread.
  • Resource-Competition.
  • Cold-Starts auf langsamen Devices.

Moderne Lösungen für Hydration-Cost

TechniqueWie es funktioniertGenutzt von
Partial HydrationNur als interactive markierte Components hydratenAstro Islands
Streaming SSRServer streamed HTML-ChunksReact 18+, Next.js
Progressive HydrationHydraten when in ViewportRSC, Astro
Resumability (Qwik)Skip Hydration; lazy-load HandlerQwik
React Server ComponentsComponents laufen nur server-sideNext.js App Router
Selective HydrationHydraten Part user interacted with firstReact 18+

Hydration vs no-Hydration Approaches

ApproachJS-CostInteractivity
SPA (CSR)Alles JS upfrontInteractive nach JS-Load
SSR + HydrationFull JS auf jeder PageVisible fast, interactive nach Hydration
SSG (no JS)Zero JSStatic
Partial HydrationNur interactive ComponentsMostly static, interactive Islands
Resumability~No JS upfrontVisible + clickable immediately

Häufige Hydration-Probleme

Hydration-Mismatch

Server-rendered HTML differs from Client-rendered Output.

Slow Hydration auf heavy Pages

Pages mit Tausenden Components hydraten langsam.

Hydration blocking User-Input

User clicked Button während Hydration läuft.

Hydration Best Practices

  • Geshipptes JS minimieren.
  • Partial Hydration nutzen.
  • SSR/CSR-Mismatches vermeiden.
  • HTML streamen.
  • Non-critical Hydration deferren.
  • Auf echten Devices testen.
  • Zero-JS für Content-Pages erwägen.
  • INP in Production monitoren.

Häufige Hydration-Fallstricke

  • Hydration-Mismatches in Dev.
  • Window-References während Render.
  • Random IDs.
  • Heavy Global-State-Init.
  • Big Component-Trees auf jeder Route.
  • Third-party Scripts synchronously.
  • Vergessen auf langsamen Devices zu testen.

FAQ: Hydration

Warum ist Hydration nötig?

SSR sendet statisches HTML für fast First-Paint. Hydration added den JS-Layer.

Wie lang sollte Hydration dauern?

< 100ms auf fast Device, < 300ms auf Mid-Tier Mobile.

Unterschied zwischen Hydration und Rendering?

Rendering: HTML produzieren. Hydration: JS an existing HTML attachen.

Was ist "React-Hydration"?

ReactDOM.hydrateRoot() walked server-rendered DOM.

Kann ich Hydration ganz vermeiden?

Für non-interactive Pages: ja. Für interactive: via Qwik oder Partial Hydration.

Was ist React Server Components?

Components, die nur server-side laufen.

Beeinflusst Hydration SEO?

Indirekt — via Core Web Vitals (INP, LCP).

Hydration-Cost mit LoadFocus testen

LoadFocus läuft Lighthouse-Audits aus 25+ Regionen, misst INP und Total Blocking Time. Registrieren bei loadfocus.com/signup.

Wie schnell ist Ihre Website?

Steigern Sie ihre Geschwindigkeit und SEO nahtlos mit unserem kostenlosen Geschwindigkeitstest.

Kostenloser Websitespeed-Test

Analysieren Sie die Ladegeschwindigkeit Ihrer Website und verbessern Sie ihre Leistung mit unserem kostenlosen Seitengeschwindigkeits-Checker.

×