In der Geschichte von React war der Standardweg zum Laden von Daten das Abrufen am Anfang einer Route und das Weiterreichen von Payloads über Komponenten-Props. Viele Entwicklungsteams greifen immer noch zuerst zu diesem Muster, selbst in modernen Framework-Umgebungen wie dem Next.js App Router.
Diese Gewohnheit führt häufig zu eng gekoppelten Komponenten und umständlichen Ladezuständen, die der Wartbarkeit der Anwendung schaden. Der Umbau der React-Web-Architektur rund um React Server Components ermöglicht es Engineering-Teams, Datengrenzen zu verschieben und das Rendering von der clientseitigen Ausführung zu entkoppeln.
Kurz gesagt
- •
Traditionelles Top-Level-Route-Fetching erzeugt starre Prop-Drilling-Ketten und zwingt Client-Bundles dazu, auf sequentielle Anfragen zu warten.
- •
React Server Components erlauben einzelnen Komponenten, Datenbanken direkt auf dem Server abzufragen und Aufgaben parallel zur HTML-Generierung auszuführen.
- •
Das Architektonizieren von Seiten um serverseitige Ladegrenzen herum reduziert den Client-JavaScript-Overhead und beseitigt unnötige Render-Waterfalls.
- •
Teams, die dieses Modell anwenden, müssen Komponentengrenzen sorgfältig verwalten, um zu verhindern, dass Server-Logik in client-interaktive Komponenten gemischt wird.
Die Kosten clientseitiger Waterfalls
Wenn Anwendungen Daten auf dem Client abrufen, müssen Benutzer warten, bis JavaScript-Bundles heruntergeladen, geparst und ausgeführt werden, bevor die erste Anfrage initiiert wird. Während Benutzeroberflächen rendern und Unterkomponenten unabhängig voneinander eingehängt werden, kann jede Komponente ihren eigenen Fetch-Vorgang auslösen. Diese Abfolge baut schwere Waterfalls auf, bei denen Netzwerkanfragen seriell statt parallel ablaufen.
Der Server befindet sich direkt neben der Datenbank und eliminiert diesen Roundtrip-Malus. Durch die gleichzeitige Ausführung von Abfragen während des Server-Renderings streamt die Anwendung Inline-Daten direkt mit dem HTML. Benutzer erhalten befüllte Seiten sofort, ohne auf zusätzliche clientseitige Ausführungsschritte warten zu müssen.
Abkehr von riesigen Routen-Loadern
Framework-Router vorheriger Generationen haben das Top-Level-Loader-Muster populär gemacht. Obwohl diese Werkzeuge das ältere Client-Fetching verbesserten, indem sie die Datenbeschaffung an die Routengrenzen verlegten, zwangen sie Seiten dennoch dazu, als riesige Datenverteiler zu agieren. Jede Unterkomponente hing von Props ab, die durch dazwischenliegende Layout-Schichten durchgereicht wurden.
Das Entkoppeln von Komponenten von Top-Level-Loadern lässt einzelne UI-Teile ihre eigenen Datenabhängigkeiten auf dem Server deklarieren. Seiten wechseln von der Verwaltung komplexen Fetch-Zustands hin zur einfachen Beschreibung des umliegenden Lade-Layouts, was sowohl die Lesbarkeit des Codes als auch die langfristige Wartbarkeit verbessert.
Das Überdenken der React-Web-Architektur rund um Server Components verändert grundlegend, wie Engineering-Teams mit Status und Datenlieferung umgehen. Die Konzentration auf serverseitige Datengrenzen hält Client-Codebasen schlank und wartbar.
Quelle
Component Architecture for React Server Components | Aurora Scharff
https://aurorascharff.no/posts/component-architecture-for-react-server-components

