前端
PythonJava运维数据库
TanStack Query
TanStack Query
  • getting started
    • 快速开始
    • 开发工具
    • Typescript
    • 默认配置
    • 网络模式
  • Query
    • 查询
    • 查询键
    • 查询函数
    • 查询选项
    • 并行查询
    • 有依赖的查询
    • 查询状态指示器
    • 窗口聚焦重新获取数据
    • 禁用/暂停查询
    • 查询重试
    • 分页查询
    • 无限查询
    • 初始化查询数据
  • 占位符
  • Mutation
    • 修改 Mutations
    • 主动查询失效 Query Invalidation
    • 修改导致的失效 Invalidation From Mutations
    • 通过修改的数据更新查询内容
    • 乐观更新
  • 取消查询
  • 默认查询函数
  • 过滤器
  • Suspense
  • 缓存数据
  • Api Reference
    • QueryClient
    • QueryCache
    • MutationCache
    • QueryObserver QueriesObserver
    • InfiniteQueryObserver
    • FocusManager
    • NotifyManager
    • useQuery
    • useQueries useInfiniteQuery
    • useMutation
    • useIsFetching
    • useIsMutating
    • useMutationState
    • useSuspenseQuery
    • useSuspenseInfiniteQuery
    • useSuspenseQueries
    • QueryClientProvider
    • useQueryClient
    • queryOptions
    • infiniteQueryOptions
    • QueryErrorResetBoundary
    • useQueryErrorResetBoundary
    • hydration
由 GitBook 提供支持
在本页

这有帮助吗?

  1. Query

查询

上一页网络模式下一页查询键

最后更新于2个月前

这有帮助吗?

查询可以与任何基于 Promise 的方法(包括 GET 和 POST 方法)一起使用以从服务器获取数据。如果你的方法修改了服务器上的数据,建议改用。

interface Response {
  message: string,
  time: string,
  ipv4: string
}

function Todos() {
  const { data, isLoading, error } = useQuery<Response>({
    queryKey: ['queryTodos'],
    queryFn: () => fetch('http://114.116.113.117:4000/api/get').then(res => res.json())
  })
  return (
    <div>
      {error ? 'Error' : <p>ipv4: {data?.ipv4}</p>}
    </div>
  )
}
  • queryKey:提供的唯一键,在内部用于重新获取、缓存和在整个应用程序中共享查询。

useQuery 的返回值包含如下几个状态,通过这些状态我们可以渲染出不同的UI。

  1. isLoading 或 status==="loading":正在查询中。

  2. isError 或 status==="error":查询遇到错误。

  3. isSuccess 或者 status==="success":查询成功。

除了这些主要的查询状态之外,我们还可以获取到 error 和 data 属性。

  1. error:如果查询处于某个 isError 状态,则错误可通过 error 属性获得。

  2. data:如果查询处于某个 isSuccess 状态,则数据可以通过 data 属性获得。

另外,除了 status 字段之外,我们还可以获得 fetchStatus:

  1. fetchStatus==="fetching":正在获取数据。

  2. fetchStatus==="idle":目前处于空闲状态。

success 状态下,查询处于 idle 状态,但如果正在后台进行重新获取,它也可能处于fetching 状态。

在没有网络的情况下,查询处于加载状态并且 fetchStatus 处于 paused 状态。

fetchStatus==="paused":查询想要获取数据,但是已经暂停。指南中阅读更多相关信息。

Mutations
在网络模式