getStaticPaths
Si une page utilise des routes dynamiques et getStaticProps
, elle doit définir une liste de chemins à générer statiquement.
Lorsque vous exportez une fonction appelée getStaticPaths
(Génération de site statique) depuis une page utilisant des routes dynamiques, Next.js pré-rendra statiquement tous les chemins spécifiés par getStaticPaths
.
La référence API de getStaticPaths
couvre tous les paramètres et props utilisables avec getStaticPaths
.
Quand utiliser getStaticPaths ?
Vous devriez utiliser getStaticPaths
si vous pré-rendez statiquement des pages utilisant des routes dynamiques et que :
- Les données proviennent d'un CMS headless
- Les données proviennent d'une base de données
- Les données proviennent du système de fichiers
- Les données peuvent être mises en cache publiquement (non spécifiques à un utilisateur)
- La page doit être pré-rendue (pour le SEO) et être très rapide —
getStaticProps
génère des fichiersHTML
etJSON
, qui peuvent tous deux être mis en cache par un CDN pour des performances optimales
Quand getStaticPaths s'exécute-t-il ?
getStaticPaths
ne s'exécute que lors de la construction en production, il n'est pas appelé pendant l'exécution. Vous pouvez vérifier que le code écrit dans getStaticPaths
est retiré du bundle côté client avec cet outil.
Comment getStaticProps s'exécute-t-il par rapport à getStaticPaths
getStaticProps
s'exécute pendantnext build
pour tous lespaths
retournés lors de la constructiongetStaticProps
s'exécute en arrière-plan quandfallback: true
est utiliségetStaticProps
est appelé avant le rendu initial quandfallback: blocking
est utilisé
Où utiliser getStaticPaths
getStaticPaths
doit être utilisé avecgetStaticProps
- Vous ne pouvez pas utiliser
getStaticPaths
avecgetServerSideProps
- Vous pouvez exporter
getStaticPaths
depuis une route dynamique qui utilise aussigetStaticProps
- Vous ne pouvez pas exporter
getStaticPaths
depuis un fichier non-page (ex. votre dossiercomponents
) - Vous devez exporter
getStaticPaths
comme une fonction autonome, et non comme une propriété du composant de page
S'exécute à chaque requête en développement
En développement (next dev
), getStaticPaths
sera appelé à chaque requête.
Génération de chemins à la demande
getStaticPaths
vous permet de contrôler quelles pages sont générées pendant la construction plutôt qu'à la demande avec fallback
. Générer plus de pages pendant la construction ralentira les builds.
Vous pouvez différer la génération de toutes les pages à la demande en retournant un tableau vide pour paths
. Ceci peut être particulièrement utile lors du déploiement de votre application Next.js dans plusieurs environnements. Par exemple, vous pouvez avoir des builds plus rapides en générant toutes les pages à la demande pour les prévisualisations (mais pas pour les builds de production). Ceci est utile pour les sites avec des centaines/milliers de pages statiques.