如果我不对RTK查询使用Cache tags,RTK查询会缓存我的数据吗?
看见
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query'
const api = createApi({
baseQuery: fetchBaseQuery({
baseUrl: '/',
}),
endpoints: (build) => ({
getPosts: build.query({
query: () => '/posts',
}),
addPost: build.mutation({
query: (body) => ({
url: 'post',
method: 'POST',
body,
}),
}),
}),
})如果我没有tagTypes: ['Post'],,RTK会查询post数据吗?如果我没有tagTypes,我还能使用providesTags和invalidatesTags吗?
发布于 2022-10-07 06:51:49
标记不是用于缓存,而是用于无效。所以是的,查询(在一定程度上,突变)将独立地缓存,如果您使用它们。
但是,如果没有标记,则不能提供标记或使标签失效。
发布于 2022-11-29 10:23:24
https://redux-toolkit.js.org/rtk-query/usage/cache-behavior#default-cache-behavior
从文件中
启动订阅时,与端点一起使用的参数将被序列化,并在内部存储为请求的queryCacheKey。
使用该queryCacheKey缓存所有订阅/查询。
这意味着每当使用use...Query新参数调用时,都会发送新请求,否则,如果queryCacheKey与存储中的匹配,则使用缓存的数据。
您可以在keepUnusedDataFor或每个端点上单独使用createApi参数配置此行为。
标记用于自动重取,因此通过使给定端点的标记无效,使查询/突变的成功/错误触发另一个查询端点的重取。通常,突变是为了使quer的标记失效。
https://stackoverflow.com/questions/73981397
复制相似问题