Comment mettre en cache et revalider les données
La mise en cache (caching) est une technique qui consiste à stocker le résultat de récupération de données et d'autres calculs afin que les requêtes futures pour les mêmes données puissent être servies plus rapidement, sans avoir à refaire le travail. La revalidation vous permet quant à elle de mettre à jour les entrées du cache sans avoir à reconstruire entièrement votre application.
Next.js fournit plusieurs API pour gérer la mise en cache et la revalidation. Ce guide vous expliquera quand et comment les utiliser.
fetch
Par défaut, les requêtes fetch
ne sont pas mises en cache. Vous pouvez mettre en cache des requêtes individuelles en définissant l'option cache
sur 'force-cache'
.
Bon à savoir : Bien que les requêtes
fetch
ne soient pas mises en cache par défaut, Next.js effectuera un prérendu (prerender) des routes contenant des requêtesfetch
et mettra en cache le HTML. Si vous souhaitez garantir qu'une route est dynamique, utilisez l'APIconnection
.
Pour revalider les données retournées par une requête fetch
, vous pouvez utiliser l'option next.revalidate
.
Cela revalidera les données après un nombre spécifié de secondes.
Consultez la référence API de fetch
pour en savoir plus.
unstable_cache
unstable_cache
vous permet de mettre en cache le résultat de requêtes de base de données et d'autres fonctions asynchrones. Pour l'utiliser, enveloppez unstable_cache
autour de la fonction. Par exemple :
La fonction accepte un troisième objet optionnel pour définir comment le cache doit être revalidé. Il accepte :
tags
: un tableau d'étiquettes (tags) utilisées par Next.js pour revalider le cache.revalidate
: le nombre de secondes après lesquelles le cache doit être revalidé.
Consultez la référence API de unstable_cache
pour en savoir plus.
revalidateTag
revalidateTag
est utilisé pour revalider des entrées de cache basées sur une étiquette (tag) suite à un événement. Pour l'utiliser avec fetch
, commencez par étiqueter la fonction avec l'option next.tags
:
Alternativement, vous pouvez marquer une fonction unstable_cache
avec l'option tags
:
Puis, appelez revalidateTag
dans un Route Handler ou une Server Action :
Vous pouvez réutiliser la même étiquette dans plusieurs fonctions pour toutes les revalider en une seule fois.
Consultez la référence API de revalidateTag
pour en savoir plus.
revalidatePath
revalidatePath
est utilisé pour revalider une route suite à un événement. Pour l'utiliser, appelez-le dans un Route Handler ou une Server Action :
Consultez la référence API de revalidatePath
pour en savoir plus.