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: 缓存时间

更多查看官网参数

相关推荐
bjzhang7517 分钟前
使用 HTML + JavaScript 实现组织架构图
前端·javascript·html·组织架构图
军军君0130 分钟前
Three.js基础功能学习十六:智能黑板实现实例三
前端·javascript·css·vue.js·3d·前端框架·threejs
海上彼尚36 分钟前
SVG矢量图形快速入门
前端·html5
嗷o嗷o42 分钟前
Android App Functions 深入理解
前端
UXbot1 小时前
AI原型设计工具评测:从创意到交互式Demo,5款产品全面解析
前端·ui·设计模式·ai·ai编程·原型模式
落魄江湖行1 小时前
硅基同事埋的坑,我用2小时才填平:Nuxt 4 路由踩坑:可选参数 [[id]] 与 [id] 的区别
前端
一勺菠萝丶1 小时前
管理后台使用手册在线预览与首次登录引导弹窗实现
java·前端·数据库
军军君011 小时前
Three.js基础功能学习十四:智能黑板实现实例一
前端·javascript·css·typescript·前端框架·threejs·智能黑板
小村儿1 小时前
连载05-Claude Skill 不是抄模板:真正管用的 Skill,都是从实战里提炼出来的
前端·后端·ai编程
xiaotao1311 小时前
JS new 操作符完整执行过程
开发语言·前端·javascript·原型模式