Daten cachen und revalidieren
Caching ist eine Technik, um die Ergebnisse von Datenabfragen und anderen Berechnungen zu speichern, sodass zukünftige Anfragen für dieselben Daten schneller bedient werden können, ohne die Arbeit erneut ausführen zu müssen. Revalidierung ermöglicht es Ihnen, Cache-Einträge zu aktualisieren, ohne Ihre gesamte Anwendung neu erstellen zu müssen.
Next.js bietet einige APIs zur Handhabung von Caching und Revalidierung. Diese Anleitung führt Sie durch die richtige Verwendung.
fetch
Standardmäßig werden fetch
-Anfragen nicht gecacht. Sie können einzelne Anfragen cachen, indem Sie die cache
-Option auf 'force-cache'
setzen.
Gut zu wissen: Obwohl
fetch
-Anfragen standardmäßig nicht gecacht werden, wird Next.js Routen mitfetch
-Anfragen prerendern und den HTML-Cache speichern. Wenn Sie sicherstellen möchten, dass eine Route dynamisch ist, verwenden Sie dieconnection
-API.
Um die von einer fetch
-Anfrage zurückgegebenen Daten zu revalidieren, können Sie die next.revalidate
-Option verwenden.
Dadurch werden die Daten nach einer bestimmten Anzahl von Sekunden revalidiert.
Weitere Informationen finden Sie in der fetch
-API-Referenz.
unstable_cache
unstable_cache
ermöglicht es Ihnen, die Ergebnisse von Datenbankabfragen und anderen asynchronen Funktionen zu cachen. Um es zu verwenden, wrappen Sie unstable_cache
um die Funktion. Beispiel:
Die Funktion akzeptiert ein drittes optionales Objekt, um zu definieren, wie der Cache revalidiert werden soll. Es akzeptiert:
tags
: Ein Array von Tags, die von Next.js zur Revalidierung des Caches verwendet werden.revalidate
: Die Anzahl der Sekunden, nach denen der Cache revalidiert werden soll.
Weitere Informationen finden Sie in der unstable_cache
-API-Referenz.
revalidateTag
revalidateTag
wird verwendet, um Cache-Einträge basierend auf einem Tag und nach einem Ereignis zu revalidieren. Um es mit fetch
zu verwenden, markieren Sie zunächst die Funktion mit der next.tags
-Option:
Alternativ können Sie eine unstable_cache
-Funktion mit der tags
-Option markieren:
Rufen Sie dann revalidateTag
in einem Route Handler oder einer Server Action auf:
Sie können dasselbe Tag in mehreren Funktionen wiederverwenden, um sie alle gleichzeitig zu revalidieren.
Weitere Informationen finden Sie in der revalidateTag
-API-Referenz.
revalidatePath
revalidatePath
wird verwendet, um eine Route nach einem Ereignis zu revalidieren. Um es zu verwenden, rufen Sie es in einem Route Handler oder einer Server Action auf:
Weitere Informationen finden Sie in der revalidatePath
-API-Referenz.