开发工具

对于 Chrome、Firefox 和 Edge 用户:有第三方浏览器扩展可用于直接在浏览器 DevTools 中调试 TanStack Query。这些扩展提供了与框架特定开发者工具包相同的功能

安装和导入开发者工具

开发者工具是一个单独的包,你需要安装它

bash
npm i @tanstack/svelte-query-devtools
npm i @tanstack/svelte-query-devtools

bash
pnpm add @tanstack/svelte-query-devtools
pnpm add @tanstack/svelte-query-devtools

bash
yarn add @tanstack/svelte-query-devtools
yarn add @tanstack/svelte-query-devtools

bash
bun add @tanstack/svelte-query-devtools
bun add @tanstack/svelte-query-devtools

您可以像这样导入开发者工具

ts
import { SvelteQueryDevtools } from '@tanstack/svelte-query-devtools'
import { SvelteQueryDevtools } from '@tanstack/svelte-query-devtools'

浮动模式

浮动模式将把开发者工具作为固定浮动元素挂载到您的应用中,并在屏幕角落提供一个切换按钮来显示和隐藏开发者工具。此切换状态将存储在 localStorage 中,并在重新加载时保留。

将以下代码尽可能高地放置在你的 Svelte 应用中。它越靠近页面根部,效果越好!

ts
<script>
  import { QueryClientProvider } from '@tanstack/svelte-query'
  import { SvelteQueryDevtools } from '@tanstack/svelte-query-devtools'
</script>

<QueryClientProvider client={queryClient}>
  {/* The rest of your application */}
  <SvelteQueryDevtools />
</QueryClientProvider>
<script>
  import { QueryClientProvider } from '@tanstack/svelte-query'
  import { SvelteQueryDevtools } from '@tanstack/svelte-query-devtools'
</script>

<QueryClientProvider client={queryClient}>
  {/* The rest of your application */}
  <SvelteQueryDevtools />
</QueryClientProvider>

选项

  • initialIsOpen: 布尔值
    • 如果您希望开发者工具默认打开,请将其设置为 true
  • buttonPosition?: "top-left" | "top-right" | "bottom-left" | "bottom-right" | "relative"
    • 默认为 bottom-right
    • 用于打开和关闭 devtools 面板的 TanStack logo 的位置
    • 如果为 relative,则按钮放置在您渲染开发者工具的位置。
  • position?: "top" | "bottom" | "left" | "right"
    • 默认为 bottom
    • Svelte Query devtools 面板的位置
  • client?: QueryClient,
    • 使用此选项可以使用自定义 QueryClient。否则,将使用最近上下文中的 QueryClient。
  • errorTypes?: { name: string; initializer: (query: Query) => TError}
    • 使用此选项可以预定义一些可以在您的查询上触发的错误。当在 UI 中切换该错误时,将调用初始化器(带上特定查询)。它必须返回一个 Error。
  • styleNonce?: string
    • 使用此项将 nonce 传递给添加到文档头部的 style 标签。如果您正在使用内容安全策略 (CSP) nonce 来允许内联样式,这将非常有用。
  • shadowDOMTarget?: ShadowRoot
    • 默认行为会将开发者工具的样式应用到 DOM 中的 head 标签。
    • 使用此选项将影子 DOM 目标传递给开发者工具,以便样式将应用于影子 DOM 中,而不是在 light DOM 的 head 标签中。