P粉1769805222023-07-28 10:23:22
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>
)