getServerSideProps
Wenn Sie eine Funktion namens getServerSideProps
(Server-Side Rendering) von einer Seite exportieren, wird Next.js diese Seite bei jeder Anfrage mit den von getServerSideProps
zurückgegebenen Daten vorab rendern. 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 Top-Level-Scope importieren, um sie in getServerSideProps
zu verwenden. Die verwendeten Importe werden nicht für die Client-Seite 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 wie { id: ... } aus. |
req | Das HTTP IncomingMessage-Objekt, mit einer zusätzlichen cookies -Eigenschaft, die ein Objekt mit String-Schlüsseln ist, die auf String-Werte von Cookies abgebildet werden. |
res | Das HTTP -Antwortobjekt. |
query | Ein Objekt, das die Query-String-Parameter darstellt, einschließlich dynamischer Routenparameter. |
preview | (Veraltet für draftMode ) preview ist true , wenn die Seite sich im Preview Mode befindet, andernfalls false . |
previewData | (Veraltet für draftMode ) Die Preview-Daten, die von setPreviewData gesetzt wurden. |
draftMode | draftMode ist true , wenn die Seite sich im Draft Mode befindet, andernfalls false . |
resolvedUrl | Eine normalisierte Version der Anfrage-URL , die das _next/data -Präfix für Client-Übergänge entfernt und die ursprünglichen Query-Werte enthält. |
locale | Enthält die aktive Locale (falls aktiviert). |
locales | Enthält alle unterstützten Locales (falls aktiviert). |
defaultLocale | Enthält die konfigurierte Standard-Locale (falls 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 notFound
-Boolean ermöglicht es der Seite, einen 404
-Status und eine 404-Seite zurückzugeben. Mit notFound: true
gibt die Seite einen 404
zurück, selbst wenn zuvor eine erfolgreich generierte Seite vorhanden war. Dies dient zur Unterstützung von Anwendungsfällen wie benutzergenerierten Inhalten, die vom Autor entfernt wurden.
redirect
Das redirect
-Objekt ermöglicht die Weiterleitung zu internen und externen Ressourcen. Es sollte die Form { destination: string, permanent: boolean }
haben. In seltenen Fällen müssen Sie möglicherweise einen benutzerdefinierten Statuscode für ältere HTTP
-Clients festlegen, um die Weiterleitung korrekt durchzuführen. In diesen Fällen können Sie die statusCode
-Eigenschaft anstelle der permanent
-Eigenschaft verwenden, aber nicht beide gleichzeitig.
Versionsverlauf
Version | Änderungen |
---|---|
v13.4.0 | App Router ist jetzt stabil mit vereinfachtem Datenabruf |
v10.0.0 | locale , locales , defaultLocale und notFound -Optionen hinzugefügt. |
v9.3.0 | getServerSideProps eingeführt. |