Benutzerdefiniertes Dokument
Ein benutzerdefiniertes Document
kann die <html>
- und <body>
-Tags aktualisieren, die zum Rendern einer Seite verwendet werden.
Um das Standard-Document
zu überschreiben, erstellen Sie die Datei pages/_document
wie unten gezeigt:
Hinweis:
_document
wird nur auf dem Server gerendert, daher können Ereignishandler wieonClick
in dieser Datei nicht verwendet werden.<Html>
,<Head />
,<Main />
und<NextScript />
sind erforderlich, damit die Seite korrekt gerendert wird.
Vorbehalte
- Die in
_document
verwendete<Head />
Komponente ist nicht identisch mitnext/head
. Die hier verwendete<Head />
Komponente sollte nur für<head>
-Code verwendet werden, der für alle Seiten gleich ist. Für alle anderen Fälle, wie<title>
-Tags, empfehlen wir die Verwendung vonnext/head
in Ihren Seiten oder Komponenten. - React-Komponenten außerhalb von
<Main />
werden vom Browser nicht initialisiert. Fügen Sie hier keine Anwendungslogik oder benutzerdefiniertes CSS (wiestyled-jsx
) hinzu. Wenn Sie gemeinsam genutzte Komponenten in allen Ihren Seiten benötigen (wie ein Menü oder eine Toolbar), lesen Sie stattdessen Layouts. Document
unterstützt derzeit keine Next.js Daten-Abruf-Methoden wiegetStaticProps
odergetServerSideProps
.
Anpassen von renderPage
Das Anpassen von renderPage
ist fortgeschritten und nur für Bibliotheken wie CSS-in-JS erforderlich, um serverseitiges Rendering zu unterstützen. Dies ist nicht für die integrierte Unterstützung von styled-jsx
notwendig.
Wir empfehlen nicht, dieses Muster zu verwenden. Erwägen Sie stattdessen die schrittweise Einführung des App Routers, der es Ihnen ermöglicht, Daten für Seiten und Layouts einfacher abzurufen.
Hinweis:
getInitialProps
in_document
wird während clientseitiger Übergänge nicht aufgerufen.- Das
ctx
-Objekt für_document
entspricht dem ingetInitialProps
erhaltenen, mit dem Zusatz vonrenderPage
.