201React-Query:useQuery基本使用

官方文档:基本查询


一、基本参数

js 复制代码
import { useQuery } from '@tanstack/react-query'

function App() {
  const info = useQuery({ queryKey: ['todos'], queryFn: fetchTodoList })
}

其中 info可以换成好几种参数比如:

方式一:使用布尔状态(最常用且清晰)

js 复制代码
function Todos() {
  const { isPending, isError, data, error } = useQuery({
    queryKey: ['todos'],
    queryFn: fetchTodoList,
  })

  // 1. 处理加载中状态
  if (isPending) {
    return <span>Loading...</span>
  }

  // 2. **推荐:使用 isError** 处理错误状态
  if (isError) {
    return <span>Error: {error.message}</span>
  }

  // 3. 处理成功状态 (isSuccess 隐含为 true)
  return (
    <ul>
      {/* ... 渲染数据 */}
    </ul>
  )
}

方式二:使用 status 字符串(适用于 switch 或 if/else if 结构)

js 复制代码
function Todos() {
  const { status, data, error } = useQuery({
    queryKey: ['todos'],
    queryFn: fetchTodoList,
  })

  if (status === 'pending') {
    return <span>Loading...</span>
  }

  // **推荐:使用 status === 'error'** 处理错误状态
  if (status === 'error') {
    return <span>Error: {error.message}</span>
  }

  // status === 'success'
  return (
    <ul>
      {/* ... 渲染数据 */}
    </ul>
  )
}
  • 注意:error:是错误的信息(如果有)
  • 错误的状态:是isError或者status来判断

二、扩展参数

1. retry:重试次数

2. refetch:

3. enabled:是否查询,后面可以用 !!value来指定条件

4.staleTime:新鲜值

5.gcTime: 缓存时间

更多查看官网参数

相关推荐
yqcoder2 小时前
CSS Position 全解析:5 种定位模式详解
前端·css
Rhi6372 小时前
从零搭建项目:React 19 + Vite 8 + Tailwind CSS v4 实战配置
前端
竹林8183 小时前
用Viem替代ethers.js:从一次签名失败到完整迁移的实战记录
前端·javascript
之歆3 小时前
DAY08_CSS浮动与行内块布局实战指南(上)
前端·css
light blue bird3 小时前
主子端台二分法任务汇总组件
前端·数据库·.net·桌面端winform
jeffwang4 小时前
我做了个让 AI 看屏幕跑测试的工具,因为 Playwright 测不了我的 Flutter Web
前端
HSunR4 小时前
dify 搭建ai作业批改流
开发语言·前端·javascript
代码不加糖5 小时前
2026 跨境电商独立站实战:从 0 到 1 搭建高转化 SaaS 商城(附源码)
开发语言·前端·javascript
亲亲小宝宝鸭5 小时前
拖一拖控件,拖出个问卷(低代码平台)
前端·低代码
江南十四行5 小时前
ReAct Agent 基本理论与项目实战(一)
前端·react.js·前端框架