ReactQuery 提供了 queryCache.invalidateQueries 可以直接指定某个 Query key 的缓存数据失效,这样 ReactQuery 就会在后台自动重新拉取最新的数据并更新到状态树中,这样列表组件中就渲染最新的数据了!完美! usePaginatedQuery 和 useInfiniteQuery 除了基础的 useQuery 外,Re
3.React Query 还会使用queryKey将数据缓存到查询缓存(QueryCache)中 4.可以通过它手动处理查询 queryKey的妙用 1. 使用QueryClient 可以用来与缓存交互,例如清空缓存,发起已声明的请求等。 queryClient.invalidateQueries(['/requestPath']); invalidateQueries:可根据查询键使缓存中的单个或多个查询无效和重新获取。
invalidateQueries({ queryKey: ['repoData'] }); }, onError: (error) => { console.log(error) } }); 这里我们传入了: mutationFn:代表元数据的方法 onSuccess:接口调用成功后的回调 onError: 失败的回调 返回的数据和useQuery基本是相同的,这里的mutate则是触发更改的方法,如果我们想执行useMutation中...
queryKey:必传,用作请求数据缓存的唯一key值,也可以在数组中,写入多项如:['repoData', '1'],这样React-Query在使用的时候会自动把它拼接为/repoData/1,这个在缓存用户访问过的页面时,非常有用。 queryFn:用于请求的方法,如果在QueryClient中配置了,这里可以不必再写,需要返回请求完成后所处理的数据。 除了这...
当请求成功后,会触发onSuccess回调,回调中调用queryCache.invalidateQueries,将userData对应的query缓存置为invalidate。 这样,React-Query就会重新请求userData对应query的数据。 总结 通过使用React-Query(或SWR)这样的数据请求库,可以将服务端状态从全局状态中解放出来。
当请求成功后,会触发onSuccess回调,回调中调用queryCache.invalidateQueries,将userData对应的query缓存置为invalidate。 这样,React-Query就会重新请求userData对应query的数据。 总结 通过使用React-Query(或SWR)这样的数据请求库,可以将服务端状态从全局状态中解放出来。
查询(Query):用于获取数据的函数。 缓存(Cache):用于存储已获取的数据,避免重复请求。 更新(Mutation):用于更新数据的函数。 无障碍(Invalidate):用于使缓存的数据失效,以便重新获取最新数据。 优势: 简化数据获取:通过useQuery钩子函数,可以轻松地获取和管理数据,无需手动处理加载状态、缓存和错误处理。
对于常见的刷新列表状态需求,ReactQuery提供了更简洁的实现方式。通过queryCache.invalidateQueries方法,开发者可以指定某个Query key的缓存数据失效,从而触发后台重新拉取数据并更新状态树,实现列表数据的即时刷新。为了适应不同的查询场景,ReactQuery还提供了usePaginatedQuery和useInfiniteQuery等高级API,分别...
React Query 的功能如下: 简化数据获取:可以使用 useQuery Hook 可以轻松发起网络请求,自动处理加载状态、错误处理,并返回响应数据。支持多种类型的请求,包括RESTful API 和 GraphQL。 内置缓存机制:自动管理和优化缓存,减少不必要的网络请求。提供 cacheTime 和 staleTime 配置项来控制缓存的有效期和数据的新鲜度。
queryCache: 请求缓存相关配置 mutationCache: 数据修改缓存相关配置 logger: 日志相关配置 defaultOptions:请求基础配置 其中defaultOptions用于配置项目中useQuery请求的管理,常用的配置如下: staleTime: 重新获取数据的时间间隔 默认0 cacheTime: 数据缓存时间 默认 1000 60 5 5分钟 ...