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 oder cookies innerhalb eines Cache-Bereichs wird nicht unterstützt. Wenn Sie diese Daten in einer zwischengespeicherten Funktion benötigen, verwenden Sie headers 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 ein Promise 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 oder false übergeben, um den Cache unbegrenzt oder bis zum Aufruf passender revalidateTag()- oder revalidatePath()-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.0unstable_cache eingeführt.