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

更多查看官网参数

相关推荐
+VX:Fegn08956 小时前
计算机毕业设计|基于springboot + vue蛋糕店管理系统(源码+数据库+文档)
前端·数据库·vue.js·spring boot·课程设计
Nicander8 小时前
我给 Excalidraw 做了一个本地工作区:DrawSpace
前端·开源
linux_cfan10 小时前
17 · 引擎适配器全景:HLS/DASH/Vimeo/Mux/Cast
前端·javascript·音视频
计算机魔术师10 小时前
烧掉2780亿美元还不够?OpenAI的资本豪赌让人头皮发麻
前端
IT_陈寒11 小时前
Java线程池用错参数,我的服务居然悄悄崩溃了
前端·人工智能·后端
神秘的猪头11 小时前
React 脱围机制(二):重新理解 useEffect——它不是生命周期,而是同步外部系统
react.js
卡布鲁11 小时前
React useMemo 与 useCallback 完全指南:原理、场景与避坑
前端·react.js
碳基修炼11 小时前
排查记:本地 devServer 是 http,浏览器却把 302 重定向升级成了 https
前端·http
步行cgn11 小时前
Spring p 命名空间注入详解
java·前端·spring
何何____12 小时前
Vue 生命周期详解
前端·javascript