getServerSideProps
Wenn eine Funktion namens getServerSideProps
(Server-Side Rendering) von einer Seite exportiert wird, rendert Next.js diese Seite bei jeder Anfrage mit den von getServerSideProps
zurückgegebenen Daten vor. Dies ist nützlich, wenn Sie Daten abrufen möchten, die sich häufig ändern, und die Seite aktualisieren möchten, um die aktuellsten Daten anzuzeigen.
Sie können Module im Bereich der obersten Ebene für die Verwendung in getServerSideProps
importieren. Importierte Module werden nicht für die Clientseite gebündelt. Das bedeutet, Sie können serverseitigen Code direkt in getServerSideProps
schreiben, einschließlich des Abrufens von Daten aus Ihrer Datenbank.
Context-Parameter
Der context
-Parameter ist ein Objekt mit den folgenden Schlüsseln:
Name | Beschreibung |
---|---|
params | Wenn diese Seite eine dynamische Route verwendet, enthält params die Routenparameter. Wenn der Seitenname [id].js ist, sieht params so aus wie { id: ... } . |
req | Das HTTP IncomingMessage-Objekt, mit einer zusätzlichen cookies -Eigenschaft, die ein Objekt mit Zeichenfolgeschlüsseln ist, die Zeichenfolgewerte von Cookies zuordnen. |
res | Das HTTP -Antwortobjekt. |
query | Ein Objekt, das die Abfragezeichenfolge repräsentiert, einschließlich dynamischer Routenparameter. |
preview | (Veraltet für draftMode ) preview ist true , wenn die Seite im Preview-Modus ist, und false andernfalls. |
previewData | (Veraltet für draftMode ) Die Preview-Daten, die von setPreviewData festgelegt wurden. |
draftMode | draftMode ist true , wenn die Seite im Draft-Modus ist, und false andernfalls. |
resolvedUrl | Eine normalisierte Version der Anfrage-URL , die das _next/data -Präfix für Client-Übergänge entfernt und ursprüngliche Abfragewerte einschließt. |
locale | Enthält das aktive Gebietsschema (sofern aktiviert). |
locales | Enthält alle unterstützten Gebietsschemen (sofern aktiviert). |
defaultLocale | Enthält das konfigurierte Standardgebietsschema (sofern aktiviert). |
Rückgabewerte von getServerSideProps
Die getServerSideProps
-Funktion sollte ein Objekt mit einer der folgenden Eigenschaften zurückgeben:
props
Das props
-Objekt ist ein Schlüssel-Wert-Paar, wobei jeder Wert von der Seitenkomponente empfangen wird. Es sollte ein serialisierbares Objekt sein, sodass alle übergebenen Props mit JSON.stringify
serialisiert werden können.
notFound
Der boolesche Wert notFound
ermöglicht es der Seite, einen 404
-Status und eine 404-Seite zurückzugeben. Mit notFound: true
gibt die Seite einen 404
zurück, auch wenn zuvor eine erfolgreich generierte Seite existierte. Dies soll Anwendungsfälle wie das Entfernen von benutzergeneriertem Inhalt durch seinen Autor unterstützen.
redirect
Das redirect
-Objekt ermöglicht die Weiterleitung zu internen und externen Ressourcen. Es sollte der Form { destination: string, permanent: boolean }
entsprechen. In seltenen Fällen müssen Sie möglicherweise einen benutzerdefinierten Statuscode für ältere HTTP
-Clients zuweisen, um korrekt weiterzuleiten. In diesen Fällen können Sie die statusCode
-Eigenschaft anstelle der permanent
-Eigenschaft verwenden, aber nicht beide.
Versionshistorie
Version | Änderungen |
---|---|
v13.4.0 | App Router ist jetzt stabil mit vereinfachter Datenabrufung |
v10.0.0 | Optionen locale , locales , defaultLocale und notFound hinzugefügt. |
v9.3.0 | getServerSideProps eingeführt. |