cacheLife
Die Option cacheLife
ermöglicht es Ihnen, benutzerdefinierte Cache-Profile zu definieren, wenn Sie die cacheLife
-Funktion in Komponenten oder Funktionen sowie im Geltungsbereich der use cache
-Direktive verwenden.
Verwendung
Um ein Profil zu definieren, aktivieren Sie das dynamicIO
-Flag und fügen Sie das Cache-Profil im cacheLife
-Objekt in der next.config.js
-Datei hinzu. Beispiel für ein blog
-Profil:
import type { NextConfig } from 'next'
const nextConfig: NextConfig = {
experimental: {
dynamicIO: true,
cacheLife: {
blog: {
stale: 3600, // 1 Stunde
revalidate: 900, // 15 Minuten
expire: 86400, // 1 Tag
},
},
},
}
export default nextConfig
module.exports = {
experimental: {
dynamicIO: true,
cacheLife: {
blog: {
stale: 3600, // 1 Stunde
revalidate: 900, // 15 Minuten
expire: 86400, // 1 Tag
},
},
},
}
Sie können diese benutzerdefinierte blog
-Konfiguration nun wie folgt in Ihrer Komponente oder Funktion verwenden:
import { unstable_cacheLife as cacheLife } from 'next/cache'
export async function getCachedData() {
'use cache'
cacheLife('blog')
const data = await fetch('/api/data')
return data
}
import { unstable_cacheLife as cacheLife } from 'next/cache'
export async function getCachedData() {
'use cache'
cacheLife('blog')
const data = await fetch('/api/data')
return data
}
Referenz
Das Konfigurationsobjekt hat Schlüsselwerte mit folgendem Format:
Eigenschaft | Wert | Beschreibung | Anforderung |
---|---|---|---|
stale | number | Dauer, für die der Client einen Wert zwischenspeichern soll, ohne den Server zu überprüfen. | Optional |
revalidate | number | Häufigkeit, mit der der Cache auf dem Server aktualisiert werden soll; veraltete Werte können während der Aktualisierung bereitgestellt werden. | Optional |
expire | number | Maximale Dauer, für die ein Wert veraltet bleiben kann, bevor auf dynamisch umgeschaltet wird. | Optional - Muss länger sein als revalidate |