React Query 是做什么的?你知道吗?
2024-06-11 17:50:10 软件 134观看
摘要最近因为工作的关系,开始接触 React Query[1]。不用不知道,一用真好用!React Query 是以前的叫法,现在叫 TanStack Query。之所以改名字,是因为这个团队发现,他们可以把这套方案推广到除 React 之外的其他框架中去。图片如

最近因为工作的关系,开始接触 React Query[1]。不用不知道,一用真好用!qRg28资讯网——每日最新资讯28at.com

React Query 是以前的叫法,现在叫 TanStack Query。之所以改名字,是因为这个团队发现,他们可以把这套方案推广到除 React 之外的其他框架中去。qRg28资讯网——每日最新资讯28at.com

图片图片qRg28资讯网——每日最新资讯28at.com

如图所示,目前(2024.06)最新的 v5 版本已经支持包含 React、Vue、Angular 在内的 5 大框架了。qRg28资讯网——每日最新资讯28at.com

那 React Query 到底是做什么的呢?qRg28资讯网——每日最新资讯28at.com

笼统地说,React Query 是用来管理接口请求的,包括增删改查所有类型的接口。管理的内容包括响应数据和请求状态,可以让你少些很多样板代码。qRg28资讯网——每日最新资讯28at.com

另外,一旦学会了 React Query 的使用,那么在其他框架中的应用也是一样,上手就快了。qRg28资讯网——每日最新资讯28at.com

不过 React Query 学习成本也高,要彻底熟练 React Query 的使用,就要学习很多概念,不过理解这些概念对于我们写出交互友好的页面又极其关键。qRg28资讯网——每日最新资讯28at.com

于是,我便萌生了写一个 React Query 系列文章的想法。本文就是第一篇,大概谈论它是做什么的,如何使用,有什么能力,后面再一篇一个具体话题单独讨论。qRg28资讯网——每日最新资讯28at.com

React Query 是从 v3 版本改名字的:qRg28资讯网——每日最新资讯28at.com

  • v3 以前(包括 v3)包名叫 react-query
  • 从 v4 开始包名改成 @tanstack/react-query 了

新旧版本改动不多[2],因为我现在用的是旧包,我就那它举例了。qRg28资讯网——每日最新资讯28at.com

安装 React Query

先创建一个 React 项目。qRg28资讯网——每日最新资讯28at.com

npm create vite@latest react-query-demos -- --template reactcd react-query-demos

安装 react-query[3] 依赖,启动项目。qRg28资讯网——每日最新资讯28at.com

npm install react-querynpm installnpm run dev

接下来删除 index.css 中的内容,再修改 App.jsx,注入 React Query 上下文依赖。qRg28资讯网——每日最新资讯28at.com

import { QueryClient, QueryClientProvider, useQuery } from 'react-query'const queryClient = new QueryClient()export default function App() {  return (    <QueryClientProvider client={queryClient}>      {/* ... */}    </QueryClientProvider>  )}

这一步是必须的,后续 React Query 的接口查询和修改等 API 能力都有赖于 queryClient。qRg28资讯网——每日最新资讯28at.com

快速开始

说了那么多,我们直接上一个 React Query 案例直观感受一下它的使用。qRg28资讯网——每日最新资讯28at.com

我们创建一个 <Example /> 组件,内容如下:qRg28资讯网——每日最新资讯28at.com

import { useQuery } from 'react-query'function Example() {  // 1)  const { isLoading, isError, error, data } = useQuery('repoData', () =>    fetch('https://api.github.com/repos/tannerlinsley/react-query').then(res =>      res.json()    )  )    // 2)  if (isLoading) return 'Loading...'  if (isError) return 'An error has occurred: ' + error.message      // 3)  return (    <div>      <h1>{data.name}</h1>      <p>{data.description}</p>      <strong> 
			

本文链接:http://www.28at.com/showinfo-26-93085-0.htmlReact Query 是做什么的?你知道吗?

声明:本网页内容旨在传播知识,不代表本站观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。

显示全文

最新热点