Benutzerdefiniertes Document
Ein benutzerdefiniertes Document
kann die <html>
- und <body>
-Tags anpassen, die zum Rendern einer Page verwendet werden.
Um das Standard-Document
zu überschreiben, erstellen Sie die Datei pages/_document
wie unten gezeigt:
Wichtig zu wissen:
_document
wird nur auf dem Server gerendert, daher können Event-Handler wieonClick
in dieser Datei nicht verwendet werden.<Html>
,<Head />
,<Main />
und<NextScript />
sind erforderlich, damit die Seite korrekt gerendert wird.
Einschränkungen
- Die in
_document
verwendete<Head />
-Komponente ist nicht dieselbe wienext/head
. Die hier verwendete<Head />
-Komponente sollte nur für<head>
-Code verwendet werden, der für alle Seiten gemeinsam ist. Für alle anderen Fälle, wie z.B.<title>
-Tags, empfehlen wir die Verwendung vonnext/head
in Ihren Seiten oder Komponenten. - React-Komponenten außerhalb von
<Main />
werden nicht vom Browser initialisiert. Fügen Sie hier keine Anwendungslogik oder benutzerdefiniertes CSS (wiestyled-jsx
) hinzu. Wenn Sie gemeinsame Komponenten auf allen Seiten benötigen (wie ein Menü oder eine Toolbar), lesen Sie stattdessen Layouts. Document
unterstützt derzeit keine Next.js Data Fetching-Methoden wiegetStaticProps
odergetServerSideProps
.
Anpassen von renderPage
Das Anpassen von renderPage
ist fortgeschritten und nur für Bibliotheken wie CSS-in-JS erforderlich, die serverseitiges Rendering unterstützen. Dies ist für die eingebaute styled-jsx
-Unterstützung nicht notwendig.
Wir empfehlen dieses Muster nicht. Erwägen Sie stattdessen die schrittweise Einführung des App Routers, der es Ihnen ermöglicht, Daten für Seiten und Layouts einfacher abzurufen.
Wichtig zu wissen:
getInitialProps
in_document
wird nicht während clientseitiger Navigationen aufgerufen.- Das
ctx
-Objekt für_document
entspricht dem, das ingetInitialProps
empfangen wird, mit der Ergänzung vonrenderPage
.
Benutzerdefinierte App
Steuern Sie die Seiteninitialisierung und fügen Sie ein Layout hinzu, das für alle Seiten beibehalten wird, indem Sie die standardmäßige App-Komponente von Next.js überschreiben.
API-Routen
Next.js unterstützt API-Routen, mit denen Sie Ihre API erstellen können, ohne Ihre Next.js-App verlassen zu müssen. Erfahren Sie hier, wie das funktioniert.