开发工具
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
🎉 React Query 自带专用的 DevTools(开发工具)!🥳
在你开始使用 React Query 时,这些 DevTools 将成为你的得力助手。它们能够直观地展示 React Query 的内部运行状态,并在遇到问题时帮你节省大量调试时间!
请注意,目前 DevTools 不支持 React Native。
我们现在有一个专门支持 React Native 的 React Query DevTools!它提供原生支持,允许你将 DevTools 直接集成到 React Native 项目中。查看详情并贡献代码:。
此外,还有一个外部工具,允许你通过外部仪表盘使用 React Query DevTools。了解详情并贡献代码:。
从 React Query v5 版本开始,DevTools 现在支持观察 mutations。
DevTools 作为一个独立的包,你需要先安装它:
如果你在 Next.js 13+ App Dir
中使用它,你需要将其安装为开发依赖(devDependency),否则可能无法正常工作。
然后,你可以这样导入 DevTools:
默认情况下,React Query DevTools 仅在 process.env.NODE_ENV === 'development'
时才会被包含到构建中。因此,你不需要手动在生产环境中排除它。
浮动模式会将 DevTools 作为固定的浮动元素挂载到应用中,并在屏幕角落提供一个切换按钮来显示或隐藏 DevTools。这个状态会存储在 localStorage
,在页面重新加载后仍然有效。
建议将以下代码放在 React 应用中尽可能靠近根节点的位置:
initialIsOpen
boolean
false
是否默认展开 DevTools
buttonPosition
"top-left" | "top-right" | "bottom-left" | "bottom-right" | "relative"
"bottom-right"
切换按钮的位置
position
"top" | "bottom" | "left" | "right"
"bottom"
DevTools 面板的位置
client
QueryClient
最近的 QueryClient
使用自定义 QueryClient
errorTypes
{ name: string; initializer: (query: Query) => TError}[]
-
预定义可在 UI 触发的错误
styleNonce
string
-
用于 CSP(内容安全策略)的 nonce
值
shadowDOMTarget
ShadowRoot
-
指定 DevTools 的样式是否应用在 Shadow DOM
嵌入模式会将 DevTools 固定在你的应用内部,让你可以将 DevTools 面板嵌入到自定义的开发工具界面中。
style
React.CSSProperties
{ height: '500px' }
自定义样式
onClose
() => unknown
-
关闭 DevTools 时的回调函数
client
QueryClient
最近的 QueryClient
使用自定义 QueryClient
errorTypes
{ name: string; initializer: (query: Query) => TError}[]
-
预定义可在 UI 触发的错误
styleNonce
string
-
用于 CSP(内容安全策略)的 nonce
值
shadowDOMTarget
ShadowRoot
-
指定 DevTools 的样式是否应用在 Shadow DOM
默认情况下,DevTools 不会包含在生产环境的构建中。但如果你希望在生产环境中懒加载 DevTools,可以使用 React.lazy
:
这样,你可以在控制台执行:
来动态下载并显示 DevTools。
如果你的构建工具支持 package exports
,可以使用更简洁的导入路径:
TypeScript 用户注意 你需要在 tsconfig.json
中将 moduleResolution
设置为 "nodenext"
,并且 TypeScript 版本需要 >=4.7
。