Wie verwende ich persistQueryClient in React-Query?
P粉908643611
P粉908643611 2023-07-27 17:13:29
0
1
525
<p>Ich verwende React Query, um API-Aufrufe durchzuführen, aber wenn ich die Seite neu lade, geht der Status verloren. Ich habe auf Stack Overflow eine Frage gepostet, in der ich gefragt habe, ob es eine Möglichkeit gibt, Daten in React-Query beizubehalten, und jemand hat geantwortet, dass dies mit persistQueryClient möglich sei, aber ich habe versucht, die Dokumentation zu lesen, verstehe aber immer noch nicht, wie es funktioniert. Kann das jemand erklären? </p><p>Sie können auf den folgenden Link verweisen, um mehr über persistQueryClient zu erfahren: https://tanstack.com/query/v4/docs/react/plugins/persistQueryClient</p><p>< ;br /></p>
P粉908643611
P粉908643611

Antworte allen(1)
P粉176980522

persistQueryClient 是对标准 queryClient 的包装,它将缓存持久化到某种存储介质,例如 localStorage。

要定义和 persistQueryClient,我们需要:

1. 使用长的缓存时间创建一个 query client。

2. 创建一个 persister。

3. 将 query client 和 persister 包装在 persistQueryClient 中。

以下是文档提供的示例:

import { PersistQueryClientProvider } from '@tanstack/react-query-persist-client'
import { createSyncStoragePersister } from '@tanstack/query-sync-storage-persister'

// 1. the query client
const queryClient = new QueryClient({
  defaultOptions: {
    queries: {
      cacheTime: 1000 * 60 * 60 * 24, // 24 hours
    },
  },
})

// 2. the persister
const persister = createSyncStoragePersister({
  storage: window.localStorage,
})

// 3. Replace the <QueryClientProvider> with <PersistQueryClientProvider>
ReactDOM.createRoot(rootElement).render(
  <PersistQueryClientProvider
    client={queryClient}
    persistOptions={{ persister }}
  >
    <App />
  </PersistQueryClientProvider>
) 
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage