getInitialProps
Hinweis:
getInitialProps
ist eine veraltete API. Wir empfehlen stattdessen die Verwendung vongetStaticProps
odergetServerSideProps
.
getInitialProps
ist eine async
-Funktion, die zur standardmäßig exportierten React-Komponente der Seite hinzugefügt werden kann. Sie wird sowohl auf der Serverseite als auch auf der Clientseite während Seitenübergängen ausgeführt. Das Ergebnis der Funktion wird als props
an die React-Komponente weitergeleitet.
Hinweis:
- Bei der Serverseitigen Darstellung werden die von
getInitialProps
zurückgegebenen Daten serialisiert. Stellen Sie sicher, dass das zurückgegebene Objekt ein einfachesObject
ist und keineDate
,Map
oderSet
verwendet.- Beim initialen Seitenaufruf wird
getInitialProps
nur auf dem Server ausgeführt. Bei der Navigation zu einer anderen Route mit dernext/link
-Komponente oder übernext/router
wirdgetInitialProps
anschließend auch auf dem Client ausgeführt.- Wenn
getInitialProps
in einer benutzerdefinierten_app.js
verwendet wird und die Seite, zu der navigiert wird,getServerSideProps
verwendet, wirdgetInitialProps
ebenfalls auf dem Server ausgeführt.
Kontextobjekt
getInitialProps
erhält ein einzelnes Argument namens context
, ein Objekt mit den folgenden Eigenschaften:
Name | Beschreibung |
---|---|
pathname | Aktuelle Route, der Pfad der Seite in /pages |
query | Query-String der URL, als Objekt geparst |
asPath | String des tatsächlichen Pfads (einschließlich der Query) wie im Browser angezeigt |
req | HTTP-Anfrageobjekt (nur Server) |
res | HTTP-Antwortobjekt (nur Server) |
err | Fehlerobjekt, falls während des Renderings ein Fehler auftritt |
Einschränkungen
getInitialProps
kann nur inpages/
Top-Level-Dateien verwendet werden und nicht in verschachtelten Komponenten. Für verschachtelte Datenabfragen auf Komponentenebene sollten Sie den App Router in Betracht ziehen.- Unabhängig davon, ob Ihre Route statisch oder dynamisch ist, können alle von
getInitialProps
alsprops
zurückgegebenen Daten auf der Clientseite im ursprünglichen HTML untersucht werden. Dies dient dazu, die Seite korrekt zu hydratisieren. Achten Sie darauf, keine sensiblen Informationen inprops
zu übergeben, die nicht auf dem Client verfügbar sein sollten.