unstable_noStore

unstable_noStore peut être utilisé pour désactiver de manière déclarative le rendu statique et indiquer qu'un composant particulier ne doit pas être mis en cache.

import { unstable_noStore as noStore } from 'next/cache';

export default async function Component() {
  noStore();
  const result = await db.query(...);
  ...
}

Bon à savoir :

  • unstable_noStore est équivalent à cache: 'no-store' sur un fetch
  • unstable_noStore est préférable à export const dynamic = 'force-dynamic' car il est plus granulaire et peut être utilisé au niveau d'un composant spécifique
  • L'utilisation de unstable_noStore à l'intérieur de unstable_cache ne désactivera pas la génération statique. À la place, il se basera sur la configuration du cache pour déterminer s'il faut mettre en cache le résultat ou non.

Utilisation

Si vous préférez ne pas passer d'options supplémentaires à fetch, comme cache: 'no-store' ou next: { revalidate: 0 }, vous pouvez utiliser noStore() comme remplacement pour tous ces cas d'usage.

import { unstable_noStore as noStore } from 'next/cache';

export default async function Component() {
  noStore();
  const result = await db.query(...);
  ...
}

Historique des versions

VersionChangements
v14.0.0Introduction de unstable_noStore.