对于 HTTP 客户端,我们将使用 Axios,并使用 React Query 库来处理获取到的数据,它允许我们在 React 应用程序中处理 API 请求和响应。
import{useMutation,useQueryClient}from'@tanstack/react-query';import{QUERY_KEY}from'../../../../constants/queryKeys';exportconstuseAddTodo=():UseAddTodo=>{constclient=useQueryClient();const{mutate:addTodo}=useMutation(postTodo,{onSuccess:()=>{client.invalidateQueries([QUERY_KEY.todos]);},...
useMutation的使用方式与useQuery类似,我们需要提供一个变更函数来执行实际的请求操作。同时,我们还可以传递一些配置选项来定制变更请求的行为。例如,我们可以通过设置onSuccess和onError回调函数来处理请求成功或失败时的情况;通过设置invalidateQueries来指定在请求成功后需要失效的查询等。通过React Query的useMutation Hook...
import{ useQuery }from'react-query'const {data,error,isError,isFetching,isLoading,isRefetching,isSuccess,refetch,}=useQuery(queryKey,queryFn?,{ enabled,onError,onSuccess,refetchOnWindowFocus,retry,select,staleTime,}) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ...
}) // mutation 后不会重新请求 useQuery({ queryKey: ['task', 'todos'], }) // 当此修改成功时,将所有带有开头为`todos`查询键值的查询和缓存都无效,并且重新开始请求 const mutation = useMutation({ mutationFn: addTodo, onSuccess: () => { queryClient.invalidateQueries({ queryKey: ["todos"...
React Query(现称为 TanStack Query)是一个专为React应用设计的数据获取、缓存和状态管理库。它通过简化常见的数据操作任务,如发起HTTP请求、处理加载状态、错误处理等,极大地提升了开发效率和用户体验。 图片 React Query 的功能如下: 简化数据获取:可以使用 useQuery Hook 可以轻松发起网络请求,自动处理加载状态、错...
} = useQuery(queryKey, queryFn?, { enabled, onError, onSuccess, refetchOnWindowFocus, retry, select, staleTime, }) 当然,为了使用 useQuery(),我们还要通过QueryClientProvider注入 QueryClient 实例。这部分也是样板代码: import { QueryClient, QueryClientProvider, useQuery } from 'react-query' ...
1. Redux 与 React Query (TanStack) 对比分析 使用 Redux、Thunk 和 React Query (TanStack) 结合使用,乍一看似乎有
创建UserList.tsx,使用React Query获取用户数据,并结合Ant Design进行展示。 4.1 使用 useQuery 获取用户数据 import React from 'react'; import { Table, Button, message } from 'antd'; import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'; ...
useQuery({ queryKey, queryFn, cacheTime, enabled, networkMode, initialData, initialDataUpdatedAt, keepPreviousData, meta, notifyOnChangeProps, onError, onSettled, onSuccess, placeholderData, queryKeyHashFn, refetchInterval, refetchIntervalInBackground, refetchOnMount, refetchOnReconnect, refetchOn...