unstable_cache
unstable_cache
permet de mettre en cache les résultats d'opérations coûteuses, comme des requêtes de base de données, et de les réutiliser entre plusieurs requêtes.
import { getUser } from './data';
import { unstable_cache } from 'next/cache';
const getCachedUser = unstable_cache(
async (id) => getUser(id),
['my-app-user']
);
export default async function Component({ userID }) {
const user = await getCachedUser(userID);
...
}
Bon à savoir : L'accès à des sources de données dynamiques comme
headers
oucookies
dans une portée de cache n'est pas pris en charge. Si vous avez besoin de ces données dans une fonction mise en cache, utilisezheaders
en dehors de la fonction et passez les données dynamiques requises comme argument.
Avertissement : Cette API est instable et pourrait changer dans le futur. Nous fournirons une documentation de migration et des codemods si nécessaire, au fur et à mesure que cette API se stabilisera.
Paramètres
const data = unstable_cache(fetchData, keyParts, options)()
fetchData
: Une fonction asynchrone qui récupère les données à mettre en cache. Doit être une fonction qui retourne unePromise
.keyParts
: Un tableau qui identifie la clé de cache. Doit contenir des valeurs globalement uniques qui, ensemble, identifient la clé des données mises en cache. La clé de cache inclut aussi les arguments passés à la fonction.options
: Un objet qui contrôle le comportement du cache. Peut contenir les propriétés suivantes :tags
: Un tableau d'étiquettes pouvant être utilisées pour contrôler l'invalidation du cache.revalidate
: Le nombre de secondes après lesquelles le cache doit être revalidé. Omettre ou passerfalse
pour mettre en cache indéfiniment ou jusqu'à ce que les méthodesrevalidateTag()
ourevalidatePath()
correspondantes soient appelées.
Retour
unstable_cache
retourne une fonction qui, lorsqu'elle est invoquée, retourne une Promise résolue avec les données en cache. Si les données ne sont pas dans le cache, la fonction fournie sera invoquée, et son résultat sera mis en cache puis retourné.
Historique des versions
Version | Changements |
---|---|
v14.0.0 | Introduction de unstable_cache . |