@tanstack/svelte-query 包提供了一流的 API,用于通过 Svelte 使用 TanStack Query。
在项目根目录附近包含 QueryClientProvider:
<script lang="ts">
import { QueryClient, QueryClientProvider } from '@tanstack/svelte-query'
import Example from './lib/Example.svelte'
const queryClient = new QueryClient()
</script>
<QueryClientProvider client={queryClient}>
<Example />
</QueryClientProvider>
<script lang="ts">
import { QueryClient, QueryClientProvider } from '@tanstack/svelte-query'
import Example from './lib/Example.svelte'
const queryClient = new QueryClient()
</script>
<QueryClientProvider client={queryClient}>
<Example />
</QueryClientProvider>
然后从任何组件调用任何函数(例如 createQuery):
<script lang="ts">
import { createQuery } from '@tanstack/svelte-query'
const query = createQuery({
queryKey: ['todos'],
queryFn: () => fetchTodos(),
})
</script>
<div>
{#if $query.isLoading}
<p>加载中...</p>
{:else if $query.isError}
<p>错误:{$query.error.message}</p>
{:else if $query.isSuccess}
{#each $query.data as todo}
<p>{todo.title}</p>
{/each}
{/if}
</div>
<script lang="ts">
import { createQuery } from '@tanstack/svelte-query'
const query = createQuery({
queryKey: ['todos'],
queryFn: () => fetchTodos(),
})
</script>
<div>
{#if $query.isLoading}
<p>加载中...</p>
{:else if $query.isError}
<p>错误:{$query.error.message}</p>
{:else if $query.isSuccess}
{#each $query.data as todo}
<p>{todo.title}</p>
{/each}
{/if}
</div>
如果您正在使用 SvelteKit,请查看 SSR 和 SvelteKit。
Svelte Query 提供了有用的函数和组件,可以更轻松地管理 Svelte 应用程序中的服务器状态。
Svelte Query 提供的 API 与 React Query 类似,但需要注意一��关键区别。