Document personnalisé
Un Document
personnalisé peut modifier les balises <html>
et <body>
utilisées pour rendre une Page.
Pour remplacer le Document
par défaut, créez le fichier pages/_document
comme indiqué ci-dessous :
Bon à savoir :
_document
est uniquement rendu côté serveur, donc les gestionnaires d'événements commeonClick
ne peuvent pas être utilisés dans ce fichier.<Html>
,<Head />
,<Main />
et<NextScript />
sont nécessaires pour que la page soit correctement rendue.
Mises en garde
- Le composant
<Head />
utilisé dans_document
n'est pas le même quenext/head
. Le<Head />
utilisé ici ne doit être utilisé que pour le code<head>
commun à toutes les pages. Pour tous les autres cas, comme les balises<title>
, nous recommandons d'utilisernext/head
dans vos pages ou composants. - Les composants React en dehors de
<Main />
ne seront pas initialisés par le navigateur. Ne rajoutez pas de logique applicative ici ou de CSS personnalisé (commestyled-jsx
). Si vous avez besoin de composants partagés sur toutes vos pages (comme un menu ou une barre d'outils), consultez plutôt Layouts. Document
ne prend actuellement pas en charge les méthodes de récupération de données de Next.js commegetStaticProps
ougetServerSideProps
.
Personnalisation de renderPage
La personnalisation de renderPage
est avancée et uniquement nécessaire pour des bibliothèques comme CSS-in-JS afin de supporter le rendu côté serveur. Ce n'est pas nécessaire pour le support natif de styled-jsx
.
Nous ne recommandons pas d'utiliser ce modèle. Envisagez plutôt d'adopter progressivement le routeur App, qui vous permet de récupérer plus facilement des données pour les pages et les layouts.
Bon à savoir :
getInitialProps
dans_document
n'est pas appelé lors des transitions côté client.- L'objet
ctx
pour_document
est équivalent à celui reçu dansgetInitialProps
, avec l'ajout derenderPage
.
Application personnalisée
Contrôlez l'initialisation des pages et ajoutez une mise en page persistante pour toutes les pages en remplaçant le composant App par défaut utilisé par Next.js.
Routes API
Next.js prend en charge les routes API, vous permettant de construire votre API sans quitter votre application Next.js. Découvrez comment cela fonctionne ici.