0Pricing
React Academy · Lektion

Progressive Hydrierung mit selektiver Hydrierung

Verwenden Sie die selektive Hydrierung von React 18, um zunächst die Komponenten zu hydrieren, mit denen der Benutzer interagiert.

Progressive Hydrierung mit selektiver Hydrierung ist eine kostenlose React Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des React Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist selektive Hydration

Selektive Hydration ist eine Funktion von React 18, mit der React mit der Hydration von Komponenten beginnen kann, sobald deren JavaScript-Code eintrifft, ohne auf den Download des JavaScripts für die gesamte Seite zu warten. Jeder unabhängig durch Code-Splitting aufgeteilte Abschnitt wird hydriert, sobald sein Bundle geladen ist, und nicht alle Abschnitte gleichzeitig.

React 18: Keine Hydration als großer Block

Vor React 18 war die Hydration nach dem Prinzip „alles oder nichts“ aufgebaut — React musste das gesamte JavaScript herunterladen und den ganzen Baum hydrieren, bevor irgendein Teil der Seite interaktiv wurde. React 18 hebt diese Einschränkung auf: Teile des Baums werden unabhängig voneinander hydriert, sobald ihr Code und ihre Daten verfügbar sind.

Benutzerinteraktion priorisiert die Hydration

Wenn der Benutzer auf eine Suspense-Boundary klickt oder mit ihr interagiert, die noch nicht hydriert wurde, priorisiert React sofort die Hydration dieses Teilbaums vor allen anderen ausstehenden Hydration-Aufgaben. Dadurch wird das Element, das der Benutzer verwenden möchte, zuerst interaktiv — auch wenn es nicht an erster Stelle im Dokument steht.

React.lazy und Suspense für Code-Splitting

Die Kombination aus React.lazy, dynamischen Imports und Suspense-Boundaries ermöglicht selektive Hydration für durch Code-Splitting aufgeteilte Komponenten. Der Browser lädt zuerst das zentrale JS-Bundle und hydriert die Shell sofort. Jede verzögert geladene Komponente wird hydriert, sobald ihr Chunk heruntergeladen wurde — schrittweise, während der Browser die Chunks abruft.

Auswirkungen auf die Benutzererfahrung

Das Ergebnis: Inhalte im sichtbaren Bereich werden interaktiv, bevor das JavaScript für die darunterliegenden Bereiche überhaupt heruntergeladen wurde. Benutzer können mit der Navigation und dem Hero-CTA interagieren, während der Kommentar-Feed und das Empfehlungs-Widget noch ihre JavaScript-Chunks laden.

Die Auswirkungen messen

Selektive Hydration reduziert die Total Blocking Time (TBT) — die wichtigste Kennzahl für die Hydration-Performance. Im Performance-Tab von Chrome DevTools werden Long Tasks (Aufgaben mit einer Dauer von mehr als 50 ms) rot hervorgehoben. Vor der selektiven Hydration sehen Sie möglicherweise eine einzelne 300-ms-Long-Task für die vollständige Hydration; danach sehen Sie mehrere kleine, zeitlich verteilte Aufgaben.

Eifrige Imports auf oberster Ebene vermeiden

Das Anti-Pattern, das die selektive Hydration zunichtemacht, besteht darin, alle Komponenten am Anfang Ihrer App zu importieren: import Footer from './Footer'. Dadurch muss der Browser den Code von Footer herunterladen, analysieren und ausführen, bevor irgendeine Hydration beginnt. Ersetzen Sie Imports von Komponenten unterhalb des sichtbaren Bereichs auf oberster Ebene durch React.lazy und dynamische Imports.

Dynamische Imports für Inhalte unterhalb des sichtbaren Bereichs

Verwenden Sie const Footer = React.lazy(() => import('./Footer')) für Komponenten, die unterhalb des initialen Viewports erscheinen. Kapseln Sie sie mit einem einfachen Fallback in Suspense. Der Browser setzt den Abruf des Footer-Bundles auf eine niedrigere Priorität, bis die Hydration des sichtbaren Bereichs abgeschlossen ist, und verbessert dadurch auf natürliche Weise die TBT.

Das Zusammenspiel von Streaming und selektiver Hydration

Streaming und selektive Hydration ergänzen sich: Streaming sendet HTML-Blöcke, um FCP und LCP zu verbessern, während selektive Hydration JavaScript-Chunks verarbeitet, um TTI und TBT zu verbessern. Zusammen verbessern sie sowohl die schnelle Anzeige von Inhalten als auch die schnelle Herstellung der Interaktivität.

Selektive Hydration und React Server Components

React Server Components führen die selektive Hydration noch weiter: Server Components erzeugen überhaupt kein JavaScript für den Client. Nur Client Components, die mit „use client“ markiert sind, müssen hydriert werden. Dadurch verringert sich die gesamte zu hydrierende JavaScript-Menge, wodurch die selektive Hydration noch effektiver wird.

Praktische Architektur für selektive Hydration

Ein praktisches Muster: Verwenden Sie renderToPipeableStream für gestreamtes HTML, kapseln Sie die Seite in einem hydrateRoot-Aufruf auf oberster Ebene (statt createRoot), um den Hydration-Modus zu aktivieren, verwenden Sie React.lazy für alle Abschnitte unterhalb des sichtbaren Bereichs und kapseln Sie jeden Abschnitt in einer Suspense-Boundary. Den Rest übernimmt React automatisch.

Benutzerinteraktion und selektive Hydration

Wie beeinflusst Benutzerinteraktion die Priorität der selektiven Hydration in React 18?

Zusammenfassung der Lektion

Mit selektiver Hydration kann React Teilbäume von Komponenten schrittweise hydrieren, sobald ihr JavaScript eintrifft, statt auf das vollständige Bundle zu warten. Benutzerinteraktionen priorisieren die Hydration des anvisierten Teilbaums. React.lazy und dynamische Imports für Inhalte unterhalb des sichtbaren Bereichs ermöglichen zusammen mit Suspense-Boundaries dieses schrittweise Vorgehen. Selektive Hydration und Streaming-SSR sind sich ergänzende Techniken, die gemeinsam sowohl die Inhaltsübertragung als auch die Interaktivität verbessern.

Häufig gestellte Fragen

Ist die Lektion „Progressive Hydrierung mit selektiver Hydrierung“ kostenlos?

Ja — der vollständige Text von „Progressive Hydrierung mit selektiver Hydrierung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des React Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Progressive Hydrierung mit selektiver Hydrierung“?

Verwenden Sie die selektive Hydrierung von React 18, um zunächst die Komponenten zu hydrieren, mit denen der Benutzer interagiert. Du übst React Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um React Academy zu starten?

Keine Vorkenntnisse erforderlich. React Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Progressive Hydrierung mit selektiver Hydrierung“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser React Academy-Lektion Code schreiben und ausführen?

Ja. Jede React Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Streaming in React 18: So funktioniert renderToPipeableStream
  2. Suspense-Grenzen und Streaming-Priorität
  3. Progressive Hydrierung mit selektiver Hydrierung
  4. Streaming-Auswirkungen messen: FCP, TTI und LCP
← Zurück zu React Academy