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

更多查看官网参数

相关推荐
Alair‎4 小时前
200React-Query基础
前端·react.js·前端框架
神秘的猪头4 小时前
# Vue项目初识:从零开始搭建你的第一个现代前端工程化Vue3项目
前端·vue.js·面试
fe小陈4 小时前
React 奇技淫巧——内联hook
前端·react.js
北辰alk4 小时前
React状态提升:为什么它是你项目架构的救星?
react.js
前端西瓜哥4 小时前
Suika图形编辑器的文字支持手动换行了
前端
Можно4 小时前
ES6 Map 全面解析:从基础到实战的进阶指南
前端·javascript·html
黄老五4 小时前
createContext
前端·javascript·vue.js
Mintopia4 小时前
🏗️ React 应用的主题化 CSS 架构方案
前端·react.js·架构
前端无涯4 小时前
Qoder的使用
前端·ide·ai·qoder