Die dokumentierte Next.js-Architektur
Next.js baut auf React auf und stellt eine Framework-Schicht für Routing, Rendering, Datenzugriff, Serverendpunkte, Kompilierung und Bündelung bereit. Dies beschreibt das für Anwendungen dokumentierte öffentliche Programmiermodell; es legt keine private Infrastruktur offen, die zum Betrieb von nextjs.org verwendet wird.
Im App Router wird der Routenbaum über Dateien für Seiten, Layouts, Ladezustände, Fehler und zugehöriges Verhalten organisiert. Layouts und Seiten sind standardmäßig Server Components. Client Components definieren im Browser ausgeführte Unterbäume für Zustand, Ereignisbehandler, Effekte und reine Browser-APIs.
Öffentliche Framework-Schichten
| Schicht | Dokumentierte Verantwortung |
|---|---|
| React-Komponenten | Setzen die Benutzeroberfläche zusammen und definieren Server- oder Client-Komponentenbäume |
| App Router oder Pages Router | Ordnen die Anwendungsstruktur mithilfe unterschiedlicher Next.js-Modelle Routen zu |
| Rendering-System | Erzeugt vorgerenderte oder zur Anfragezeit erstellte Ausgaben und koordiniert gegebenenfalls Streaming |
| Caching und Revalidierung | Steuern Wiederverwendung und Aktualität entsprechend dem Verhalten von Routen und Daten |
| Route Handlers | Implementieren HTTP-Endpunkte innerhalb einer App-Router-Anwendung |
| Build-Werkzeuge | Kompilieren und bündeln Anwendungscode und Assets für unterstützte Bereitstellungen |
Eine Next.js-Route kann servergerenderte Inhalte und gezielte Clientinteraktion enthalten. Das Vorhandensein einer Client Component macht nicht jeden übergeordneten Bestandteil zu einer im Browser gerenderten Anwendung, obwohl die gewählte Client-Grenze beeinflusst, welche Module für den Browser aufgenommen werden.
Bereitstellungsoptionen
- Der statische Export erzeugt Dateien für Projekte, die keine nicht unterstützten Serverfunktionen benötigen.
- Vorrendering bereitet die Ausgabe einer Route vor einer einzelnen Anfrage vor.
- Dynamisches Rendering erzeugt Ausgaben anhand von Informationen zur Anfragezeit.
- Caching und Revalidierung steuern Wiederverwendung und Aktualität zwischen diesen Extremen.
- Für Verhalten zur Anfragezeit und anderes serverabhängiges Verhalten ist eine kompatible Laufzeit erforderlich.
Der offizielle Bereitstellungsleitfaden dokumentiert Self-Hosting und Plattformadapter, weshalb Vercel keine technische Voraussetzung für jede Next.js-Anwendung ist. Der Funktionsumfang kann sich zwischen Umgebungen unterscheiden. Teams sollten Routing, Caching, Bildverhalten, Revalidierung, Streaming und Route Handlers anhand ihres gewählten Ziels prüfen, statt die Kompatibilität aus einem erfolgreichen Build abzuleiten.
