Die QueryCache ist der Speicher für TanStack Query. Sie speichert alle Daten, Metainformationen und den Zustand von Queries, die sie enthält.
Normalerweise interagieren Sie nicht direkt mit der QueryCache, sondern verwenden stattdessen den QueryClient für einen bestimmten Cache.
import { QueryCache } from '@tanstack/react-query'
const queryCache = new QueryCache({
onError: (error) => {
console.log(error)
},
onSuccess: (data) => {
console.log(data)
},
onSettled: (data, error) => {
console.log(data, error)
},
})
const query = queryCache.find(['posts'])
import { QueryCache } from '@tanstack/react-query'
const queryCache = new QueryCache({
onError: (error) => {
console.log(error)
},
onSuccess: (data) => {
console.log(data)
},
onSettled: (data, error) => {
console.log(data, error)
},
})
const query = queryCache.find(['posts'])
Ihre verfügbaren Methoden sind
Optionen
find ist eine etwas fortgeschrittenere synchrone Methode, die verwendet werden kann, um eine vorhandene Query-Instanz aus dem Cache zu erhalten. Diese Instanz enthält nicht nur alle Zustände der Abfrage, sondern auch alle Instanzen und die zugrunde liegenden Mechanismen der Abfrage. Wenn die Abfrage nicht existiert, wird undefined zurückgegeben.
Hinweis: Dies ist normalerweise nicht für die meisten Anwendungen erforderlich, kann aber in seltenen Fällen nützlich sein, wenn mehr Informationen über eine Abfrage benötigt werden (z. B. das Überprüfen des Timestamps query.state.dataUpdatedAt, um zu entscheiden, ob eine Abfrage frisch genug ist, um als Anfangswert verwendet zu werden).
const query = queryCache.find(queryKey)
const query = queryCache.find(queryKey)
Optionen
Gibt zurück
findAll ist eine noch fortgeschrittenere synchrone Methode, die verwendet werden kann, um vorhandene Query-Instanzen aus dem Cache zu erhalten, die teilweise mit dem Query-Schlüssel übereinstimmen. Wenn keine Abfragen existieren, wird ein leeres Array zurückgegeben.
Hinweis: Dies ist normalerweise nicht für die meisten Anwendungen erforderlich, kann aber in seltenen Fällen nützlich sein, wenn mehr Informationen über eine Abfrage benötigt werden
const queries = queryCache.findAll(queryKey)
const queries = queryCache.findAll(queryKey)
Optionen
Gibt zurück
Die Methode subscribe kann verwendet werden, um sich für die gesamte QueryCache zu registrieren und über sichere/bekannte Updates der Cache wie sich ändernde Query-Zustände oder hinzugefügte/entfernte Queries informiert zu werden.
const callback = (event) => {
console.log(event.type, event.query)
}
const unsubscribe = queryCache.subscribe(callback)
const callback = (event) => {
console.log(event.type, event.query)
}
const unsubscribe = queryCache.subscribe(callback)
Optionen
Gibt zurück
Die Methode clear kann verwendet werden, um den Cache vollständig zu leeren und neu zu beginnen.
queryCache.clear()
queryCache.clear()
Um ein besseres Verständnis dafür zu bekommen, wie die QueryCache intern funktioniert, werfen Sie einen Blick auf #18: Inside React Query aus den Community-Ressourcen.