Islands-Architektur: Selektive Hydrierung
Lernen Sie, wie Islands interaktive Komponenten isolieren, sodass nur diese JavaScript ausliefern, während der Rest statisches HTML bleibt.
Islands-Architektur: Selektive Hydrierung ist eine kostenlose React Academy-Lektion auf CoddyKit. Dies ist Lektion 2 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.
Das Islands-Konzept
Die Islands-Architektur, die Jason Miller 2020 geprägt hat, betrachtet eine Webseite als überwiegend statisches HTML mit isolierten „Inseln“ der Interaktivität. Das statische HTML-Meer wird unverändert an den Browser gesendet. Nur die interaktiven Inseln laden JavaScript herunter und führen es aus, sodass die JavaScript-Menge proportional zur tatsächlichen Interaktivität ist.
So funktionieren Islands
Jede Island ist eine unabhängig hydratisierte Komponente. Der Server rendert das anfängliche HTML der Island zusammen mit dem Rest der Seite. Sobald das JavaScript der Island geladen ist, hydratisiert es nur den Teilbaum dieser Komponente. Das HTML rund um die Islands wird von JavaScript nie angefasst — es ist tatsächlich statisch.
Der Unterschied bei der JavaScript-Menge
Auf einer Blogartikelseite mit Islands-Architektur kann die JavaScript-Menge für eine einzelne Like-Button-Island 5 kB betragen. Dieselbe Seite, als React-SPA erstellt, könnte mehr als 200 kB JavaScript senden, um die gesamte Seite zu hydratisieren. Beim Islands-Ansatz ist die JavaScript-Menge proportional zur Interaktivität und nicht zur Seitengröße.
Islands mit mehreren Frameworks
Astro, das führende Framework für die Islands-Architektur, unterstützt Islands, die auf derselben Seite mit unterschiedlichen Frameworks erstellt wurden. Sie können eine React-Island neben einer Vue-Island und einer Island mit Vanilla-JavaScript verwenden. Jede Island wird unabhängig gebündelt, sodass Benutzer nur den Framework-Code herunterladen, der von den sichtbaren Islands verwendet wird.
client:load — Sofortige Hydration
Die Direktive client:load hydratisiert die Island sofort beim Laden der Seite. Verwenden Sie sie für Islands, die sofort sichtbar und interaktiv sind, etwa ein Navigationsmenü oder einen Hero-Bereich mit einem Sucheingabefeld. Dies ist die Hydration-Strategie mit der höchsten Priorität.
client:idle — Verzögerte Hydration
Die Direktive client:idle wartet, bis der Hauptthread des Browsers untätig ist, also nachdem die kritischen Inhalte geladen wurden, und hydratisiert die Island erst dann. Dies eignet sich ideal für Widgets unterhalb des sichtbaren Bereichs oder sekundäre Interaktionen, die nicht sofort benötigt werden, etwa eine Leiste zum Teilen in sozialen Netzwerken.
client:visible — Lazy Hydration
Die Direktive client:visible verwendet einen Intersection Observer, um die Island erst zu hydratisieren, wenn sie in den sichtbaren Bereich gescrollt wird. Dies eignet sich ideal für Islands weiter unten auf der Seite — etwa einen Kommentarbereich oder ein Karussell mit ähnlichen Produkten — die viele Benutzer möglicherweise nie erreichen. JavaScript wird erst geladen, wenn es benötigt wird.
client:only — SSR überspringen
Die Direktive client:only überspringt das serverseitige Rendern vollständig und rendert die Island ausschließlich im Browser. Dies ist für Komponenten erforderlich, die browserabhängige APIs (window, document) verwenden oder beim Mounten vom clientseitigen Zustand abhängen. Der Nachteil besteht darin, dass für diese Island kein serverseitig gerendertes HTML vorhanden ist.
Das Hydrationsproblem lösen
Die Islands-Architektur löst das Problem der vollständigen Hydration, indem JavaScript nur für tatsächlich interaktive Komponenten geladen und ausgeführt wird. Bei einem Blogartikel mit einem Like-Button wird nur die Like-Button-Island hydratisiert — der 1200 Wörter umfassende Artikeltext, der Header und der Footer verursachen auf dem Client keinerlei JavaScript-Ausführung.
Zustandsisolierung zwischen Islands
Jede Island verfügt über einen eigenen isolierten Zustand. Islands können den React-Zustand nicht direkt gemeinsam nutzen, da sie separate React-Bäume sind. Dies ist beabsichtigt: Wenn zwei Komponenten einen Zustand gemeinsam nutzen müssen, sollten sie zu einer einzigen Island zusammengefasst werden. Die Kommunikation zwischen Islands erfolgt über URL-Parameter, DOM-Ereignisse oder leichtgewichtige State-Bibliotheken.
Ergebnisse aus der Praxis
Websites, die von einer React-SPA zur Islands-Architektur migriert wurden, etwa die Astro-Dokumentationsseite, berichten von deutlichen Verbesserungen: Die JavaScript-Menge sinkt um 70–90 %, TTI verbessert sich auf Mobilgeräten um 2–4 Sekunden, und die Performance-Werte in Lighthouse steigen von Werten um 60 auf über 90. Die größten Vorteile zeigen sich bei inhaltsreichen Seiten.
Strategien für die Island-Hydration
Welche Astro-Hydration-Direktive hydriert eine Komponente erst, wenn sie in den sichtbaren Bereich gelangt?
Lektionsrückblick
Die Islands-Architektur hält den größten Teil der Seite als statisches HTML vor und hydriert nur isolierte interaktive Komponenten. Astro stellt Hydration-Direktiven bereit: client:load (sofort), client:idle (nach Eintritt des Leerlaufs), client:visible (beim Scrollen) und client:only (Rendering ausschließlich auf dem Client). Jedes Island wird unabhängig hydriert, sodass die Menge an JavaScript proportional zur Interaktivität und nicht zur Seitengröße ist.
Häufig gestellte Fragen
Ist die Lektion „Islands-Architektur: Selektive Hydrierung“ kostenlos?
Ja — der vollständige Text von „Islands-Architektur: Selektive 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 „Islands-Architektur: Selektive Hydrierung“?
Lernen Sie, wie Islands interaktive Komponenten isolieren, sodass nur diese JavaScript ausliefern, während der Rest statisches HTML bleibt. 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 2 von 4.
Wie lange dauert die Lektion „Islands-Architektur: Selektive 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
- Das Problem der vollständigen Hydrierung
- Islands-Architektur: Selektive Hydrierung
- Astro- und React-Islands einrichten
- Performance messen: Lighthouse und Core Web Vitals