getServerSideProps
getServerSideProps
ist eine Next.js-Funktion, die verwendet werden kann, um Daten abzurufen und den Inhalt einer Seite zur Laufzeit der Anfrage zu rendern.
Beispiel
Sie können getServerSideProps
verwenden, indem Sie es aus einer Seitenkomponente exportieren. Das folgende Beispiel zeigt, wie Sie Daten von einer externen API in getServerSideProps
abrufen und diese als Props an die Seite übergeben können:
Wann sollte ich getServerSideProps
verwenden?
Sie sollten getServerSideProps
verwenden, wenn Sie eine Seite rendern müssen, die von personalisierten Benutzerdaten oder Informationen abhängt, die erst zur Laufzeit der Anfrage bekannt sind. Zum Beispiel authorization
-Header oder Geolokalisierungsdaten.
Wenn Sie die Daten nicht zur Laufzeit der Anfrage abrufen müssen oder die Daten und vorgerendertes HTML zwischenspeichern möchten, empfehlen wir die Verwendung von getStaticProps
.
Verhalten
getServerSideProps
läuft auf dem Server.getServerSideProps
kann nur von einer Seite exportiert werden.getServerSideProps
gibt JSON zurück.- Wenn ein Benutzer eine Seite besucht, wird
getServerSideProps
verwendet, um Daten zur Laufzeit der Anfrage abzurufen, und diese Daten werden verwendet, um das initiale HTML der Seite zu rendern. - Die an die Seitenkomponente übergebenen
props
können auf dem Client als Teil des initialen HTML eingesehen werden. Dies dient dazu, die Seite korrekt zu hydrieren. Stellen Sie sicher, dass Sie keine sensiblen Informationen inprops
übergeben, die nicht auf dem Client verfügbar sein sollten. - Wenn ein Benutzer die Seite über
next/link
odernext/router
besucht, sendet Next.js eine API-Anfrage an den Server, diegetServerSideProps
ausführt. - Sie müssen keine Next.js-API-Route aufrufen, um Daten abzurufen, wenn Sie
getServerSideProps
verwenden, da die Funktion auf dem Server läuft. Stattdessen können Sie direkt ausgetServerSideProps
heraus ein CMS, eine Datenbank oder andere externe APIs aufrufen.
Gut zu wissen:
- Siehe
getServerSideProps
API-Referenz für Parameter und Props, die mitgetServerSideProps
verwendet werden können.- Sie können das next-code-elimination tool verwenden, um zu überprüfen, was Next.js aus dem Client-seitigen Bundle entfernt.
Fehlerbehandlung
Wenn innerhalb von getServerSideProps
ein Fehler auftritt, wird die Datei pages/500.js
angezeigt. Lesen Sie die Dokumentation zur 500-Seite, um mehr über deren Erstellung zu erfahren. Während der Entwicklung wird diese Datei nicht verwendet, stattdessen wird das Entwicklungsfehler-Overlay angezeigt.
Besondere Fälle
Caching mit Server-seitigem Rendering (SSR)
Sie können Caching-Header (Cache-Control
) innerhalb von getServerSideProps
verwenden, um dynamische Antworten zwischenzuspeichern. Zum Beispiel mit stale-while-revalidate
.
Bevor Sie jedoch cache-control
verwenden, empfehlen wir zu prüfen, ob getStaticProps
mit ISR besser für Ihren Anwendungsfall geeignet ist.
Formulare und Mutationen
Erfahren Sie, wie Sie Formularübermittlungen und Datenmutationen mit Next.js handhaben.
Client-seitiges Abrufen von Daten
Erfahren Sie mehr über das client-seitige Abrufen von Daten und die Verwendung von SWR, einer React Hook-Bibliothek für das Datenabrufen, die Caching, Revalidierung, Fokus-Tracking, Intervall-Neuabfragen und mehr handhabt.