unstable_cache
unstable_cache
ermöglicht es Ihnen, die Ergebnisse aufwändiger Operationen wie Datenbankabfragen zwischenzuspeichern und sie über mehrere Anfragen hinweg wiederzuverwenden.
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);
...
}
Wissenswert: Der Zugriff auf dynamische Datenquellen wie
headers
odercookies
innerhalb eines Cache-Bereichs wird nicht unterstützt. Wenn Sie diese Daten in einer zwischengespeicherten Funktion benötigen, verwenden Sieheaders
außerhalb der Funktion und übergeben Sie die erforderlichen dynamischen Daten als Argument.
Warnung: Diese API ist instabil und kann sich in Zukunft ändern. Wir werden bei Bedarf Migrationsdokumentation und Codemods bereitstellen, sobald diese API stabilisiert wird.
Parameter
const data = unstable_cache(fetchData, keyParts, options)()
fetchData
: Dies ist eine asynchrone Funktion, die die zu cachenden Daten abruft. Es muss eine Funktion sein, die einPromise
zurückgibt.keyParts
: Dies ist ein Array, das den Cache-Schlüssel identifiziert. Es muss global eindeutige Werte enthalten, die zusammen den Schlüssel der zwischengespeicherten Daten identifizieren. Der Cache-Schlüssel beinhaltet auch die an die Funktion übergebenen Argumente.options
: Dies ist ein Objekt, das das Cache-Verhalten steuert. Es kann folgende Eigenschaften enthalten:tags
: Ein Array von Tags, die zur Steuerung der Cache-Invalidierung verwendet werden können.revalidate
: Die Anzahl der Sekunden, nach denen der Cache neu validiert werden soll. Auslassen oderfalse
übergeben, um den Cache unbegrenzt oder bis zum Aufruf passenderrevalidateTag()
- oderrevalidatePath()
-Methoden zu speichern.
Rückgabewert
unstable_cache
gibt eine Funktion zurück, die bei Aufruf ein Promise zurückgibt, das sich zu den zwischengespeicherten Daten auflöst. Wenn die Daten nicht im Cache sind, wird die bereitgestellte Funktion aufgerufen und ihr Ergebnis zwischengespeichert und zurückgegeben.
Versionsverlauf
Version | Änderungen |
---|---|
v14.0.0 | unstable_cache eingeführt. |