getServerSideProps
getServerSideProps
ist eine Next.js-Funktion, mit der Daten abgerufen und der Inhalt einer Seite zum Zeitpunkt der Anfrage gerendert werden kann.
Beispiel
Sie können getServerSideProps
verwenden, indem Sie es aus einer Page-Komponente exportieren. Das folgende Beispiel zeigt, wie Sie Daten von einer externen API in getServerSideProps
abrufen und die Daten 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 nur zum Zeitpunkt der Anfrage bekannt sind. Beispielsweise Authorization
-Header oder eine Geolokalisierung.
Wenn Sie die Daten nicht zum Zeitpunkt der Anfrage abrufen müssen oder die Daten und vorgerenderte HTML lieber zwischenspeichern möchten, empfehlen wir die Verwendung von getStaticProps
.
Verhalten
getServerSideProps
wird auf dem Server ausgeführt.getServerSideProps
kann nur von einer Seite exportiert werden.getServerSideProps
gibt JSON zurück.- Wenn ein Benutzer eine Seite besucht, wird
getServerSideProps
verwendet, um Daten zum Zeitpunkt der Anfrage abzurufen, und die Daten werden verwendet, um das ursprüngliche HTML der Seite zu rendern. Props
, die an die Seitenkomponente übergeben werden, können auf dem Client als Teil des ursprünglichen HTML-Codes angezeigt werden. Dies dient dazu, die Seite korrekt zu hydratisieren. Achten Sie darauf, 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, dergetServerSideProps
ausführt. - Sie müssen keine Next.js API-Route aufrufen, um Daten zu laden, 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 APIs von Drittanbietern aufrufen.
Hinweis:
- Weitere Informationen finden Sie in der
getServerSideProps
-API-Referenz für Parameter und Eigenschaften, 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. Weitere Informationen zum Erstellen einer solchen Seite finden Sie in der Dokumentation zur 500-Seite. Während der Entwicklung wird diese Datei nicht verwendet, stattdessen wird der Entwicklungsfehler-Overlay angezeigt.
Randfälle
Zwischenspeichern mit Server-Side Rendering (SSR)
Sie können Caching-Header (Cache-Control
) in 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 zu Ihrem Anwendungsfall passt.