getServerSideProps
getServerSideProps
est une fonction Next.js qui peut être utilisée pour récupérer des données et rendre le contenu d'une page au moment de la requête.
Exemple
Vous pouvez utiliser getServerSideProps
en l'exportant depuis un composant de page. L'exemple ci-dessous montre comment récupérer des données depuis une API tierce dans getServerSideProps
, et passer ces données à la page en tant que props :
Quand utiliser getServerSideProps
?
Vous devriez utiliser getServerSideProps
si vous avez besoin de rendre une page qui dépend de données utilisateur personnalisées, ou d'informations qui ne peuvent être connues qu'au moment de la requête. Par exemple, des en-têtes authorization
ou une géolocalisation.
Si vous n'avez pas besoin de récupérer les données au moment de la requête, ou si vous préférez mettre en cache les données et le HTML pré-rendu, nous recommandons d'utiliser getStaticProps
.
Comportement
getServerSideProps
s'exécute sur le serveur.getServerSideProps
ne peut être exporté que depuis une page.getServerSideProps
retourne du JSON.- Lorsqu'un utilisateur visite une page,
getServerSideProps
sera utilisé pour récupérer les données au moment de la requête, et ces données seront utilisées pour rendre le HTML initial de la page. - Les
props
passées au composant de page peuvent être visualisées côté client dans le HTML initial. Ceci permet à la page d'être hydratée correctement. Assurez-vous de ne pas passer d'informations sensibles qui ne devraient pas être disponibles côté client dans lesprops
. - Lorsqu'un utilisateur visite la page via
next/link
ounext/router
, Next.js envoie une requête API au serveur, qui exécutegetServerSideProps
. - Vous n'avez pas besoin d'appeler une Route API Next.js pour récupérer des données lorsque vous utilisez
getServerSideProps
, car la fonction s'exécute sur le serveur. À la place, vous pouvez appeler directement un CMS, une base de données, ou d'autres APIs tierces depuisgetServerSideProps
.
Bon à savoir :
- Consultez la référence API de
getServerSideProps
pour les paramètres et props utilisables avecgetServerSideProps
.- Vous pouvez utiliser l'outil next-code-elimination pour vérifier ce que Next.js élimine du bundle côté client.
Gestion des erreurs
Si une erreur est levée dans getServerSideProps
, la page pages/500.js
sera affichée. Consultez la documentation sur la page 500 pour apprendre comment la créer. Durant le développement, cette page ne sera pas utilisée et un overlay d'erreur de développement sera affiché à la place.
Cas particuliers
Mise en cache avec le rendu côté serveur (SSR)
Vous pouvez utiliser des en-têtes de cache (Cache-Control
) dans getServerSideProps
pour mettre en cache des réponses dynamiques. Par exemple, en utilisant stale-while-revalidate
.
Cependant, avant d'utiliser cache-control
, nous recommandons de vérifier si getStaticProps
avec ISR est plus adapté à votre cas d'usage.
Formulaires et Mutations
Apprenez à gérer les soumissions de formulaires et les mutations de données avec Next.js.
Récupération côté client (Client-side Fetching)
Découvrez la récupération de données côté client et comment utiliser SWR, une bibliothèque de Hooks React pour la récupération de données qui gère le cache, la revalidation, le suivi du focus, la récupération à intervalle et plus encore.