dehydrate
dehydrate erstellt eine statische Darstellung eines Caches, die später mit HydrationBoundary oder hydrate wiederhergestellt werden kann. Dies ist nützlich, um vorab abgerufene Abfragen vom Server zum Client zu übertragen oder Abfragen in localStorage oder anderen persistenten Speicherorten zu speichern. Standardmäßig werden nur erfolgreich abgeschlossene Abfragen einbezogen.
import { dehydrate } from '@tanstack/solid-query'
const dehydratedState = dehydrate(queryClient, {
shouldDehydrateQuery,
shouldDehydrateMutation,
})
import { dehydrate } from '@tanstack/solid-query'
const dehydratedState = dehydrate(queryClient, {
shouldDehydrateQuery,
shouldDehydrateMutation,
})
Optionen
- client: QueryClient
- Erforderlich
- Der queryClient, der dehydriert werden soll
- options: DehydrateOptions
- Optional
- shouldDehydrateMutation: (mutation: Mutation) => boolean
- Optional
- Gibt an, ob Mutationen dehydriert werden sollen.
- Die Funktion wird für jede Mutation im Cache aufgerufen
- Geben Sie true zurück, um diese Mutation in die Dehydrierung einzubeziehen, oder false andernfalls
- Standardmäßig werden nur pausierte Mutationen einbezogen
- Wenn Sie die Funktion erweitern möchten, während das Standardverhalten beibehalten wird, importieren und führen Sie defaultShouldDehydrateMutation als Teil der Rückgabeanweisung aus
- shouldDehydrateQuery: (query: Query) => boolean
- Optional
- Gibt an, ob Abfragen dehydriert werden sollen.
- Die Funktion wird für jede Abfrage im Cache aufgerufen
- Geben Sie true zurück, um diese Abfrage in die Dehydrierung einzubeziehen, oder false andernfalls
- Standardmäßig werden nur erfolgreiche Abfragen einbezogen
- Wenn Sie die Funktion erweitern möchten, während das Standardverhalten beibehalten wird, importieren und führen Sie defaultShouldDehydrateQuery als Teil der Rückgabeanweisung aus
- serializeData?: (data: any) => any Eine Funktion, um Daten während der Dehydrierung zu transformieren (serialisieren).
- shouldRedactErrors?: (error: unknown) => boolean
- Optional
- Gibt an, ob Fehler vom Server während der Dehydrierung geschwärzt werden sollen.
- Die Funktion wird für jeden Fehler im Cache aufgerufen
- Geben Sie true zurück, um diesen Fehler zu schwärzen, oder false andernfalls
- Standardmäßig werden alle Fehler geschwärzt
Gibt zurück
- dehydratedState: DehydratedState
- Dies enthält alles, was benötigt wird, um den queryClient später wiederherzustellen
- Sie sollten sich **nicht** auf das genaue Format dieser Antwort verlassen. Sie ist nicht Teil der öffentlichen API und kann sich jederzeit ändern
- Dieses Ergebnis ist nicht in serialisierter Form. Sie müssen dies selbst tun, falls gewünscht
Einschränkungen
Einige Speichersysteme (wie die Web Storage API des Browsers) erfordern, dass Werte JSON-serialisierbar sind. Wenn Sie Werte dehydrieren müssen, die nicht automatisch in JSON serialisierbar sind (wie Error oder undefined), müssen Sie sie selbst serialisieren. Da standardmäßig nur erfolgreiche Abfragen einbezogen werden, müssen Sie, um auch Errors einzubeziehen, shouldDehydrateQuery angeben, z.B.
// server
const state = dehydrate(client, { shouldDehydrateQuery: () => true }) // to also include Errors
const serializedState = mySerialize(state) // transform Error instances to objects
// client
const state = myDeserialize(serializedState) // transform objects back to Error instances
hydrate(client, state)
// server
const state = dehydrate(client, { shouldDehydrateQuery: () => true }) // to also include Errors
const serializedState = mySerialize(state) // transform Error instances to objects
// client
const state = myDeserialize(serializedState) // transform objects back to Error instances
hydrate(client, state)
hydrate
hydrate fügt einen zuvor dehydrierten Zustand in einen Cache ein.
import { hydrate } from '@tanstack/solid-query'
hydrate(queryClient, dehydratedState, options)
import { hydrate } from '@tanstack/solid-query'
hydrate(queryClient, dehydratedState, options)
Optionen
- client: QueryClient
- Erforderlich
- Der queryClient, in den der Zustand wiederhergestellt werden soll
- dehydratedState: DehydratedState
- Erforderlich
- Der Zustand, der in den Client wiederhergestellt werden soll
- options: HydrateOptions
- Optional
- defaultOptions: DefaultOptions
- Optional
- mutations: MutationOptions Die Standard-Mutationsoptionen, die für die wiederhergestellten Mutationen verwendet werden.
- queries: QueryOptions Die Standard-Abfrageoptionen, die für die wiederhergestellten Abfragen verwendet werden.
- deserializeData?: (data: any) => any Eine Funktion, um Daten zu transformieren (deserialisieren), bevor sie in den Cache gelegt werden.
- queryClient?: QueryClient
- Verwenden Sie dies, um einen benutzerdefinierten QueryClient zu verwenden. Andernfalls wird der aus dem nächsten Kontext verwendet.
Einschränkungen
Wenn die Abfragen, die Sie wiederherstellen möchten, bereits im queryCache vorhanden sind, überschreibt hydrate sie nur, wenn die Daten neuer sind als die im Cache vorhandenen Daten. Andernfalls werden sie **nicht** angewendet.