Devtools

挥舞你的双手并欢呼雀跃,因为 Vue Query 自带了专门的 devtools!🥳

当您开始您的 Vue Query 之旅时,您会希望这些 devtools 在您身边。它们有助于可视化 Vue Query 的所有内部工作原理,如果您发现自己陷入困境,可能会为您节省数小时的调试时间!

基于组件的 Devtools (Vue 3)

您可以使用专门的包直接将 devtools 组件集成到您的页面中。基于组件的 devtools 使用与框架无关的实现,并且始终保持最新。

devtools 组件是一个单独的包,您需要安装它

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

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

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

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

默认情况下,Vue Query Devtools 仅在 process.env.NODE_ENV === 'development' 时包含在捆绑包中,因此您无需担心在生产构建期间排除它们。

Devtools 将作为固定的浮动元素安装在您的应用程序中,并在屏幕的角落提供一个切换按钮,以显示和隐藏 devtools。此切换状态将存储在 localStorage 中并在重新加载后记住。

将以下代码尽可能高地放置在您的 Vue 应用程序中。它离页面根目录越近,效果就越好!

vue
<script setup>
import { VueQueryDevtools } from '@tanstack/vue-query-devtools'
</script>

<template>
  <h1>The app!</h1>
  <VueQueryDevtools />
</template>
<script setup>
import { VueQueryDevtools } from '@tanstack/vue-query-devtools'
</script>

<template>
  <h1>The app!</h1>
  <VueQueryDevtools />
</template>

选项

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

传统 Devtools

Vue Query 将与 官方 Vue devtools 无缝集成,添加自定义检查器和时间线事件。Devtool 代码默认将从生产包中进行 tree-shaking。

要使其工作,您只需在插件选项中启用它

ts
app.use(VueQueryPlugin, {
  enableDevtoolsV6Plugin: true,
})
app.use(VueQueryPlugin, {
  enableDevtoolsV6Plugin: true,
})

支持 v6 和 v7 版本的 devtools。