首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RTK查询缓存

RTK查询缓存
EN

Stack Overflow用户
提问于 2022-10-07 01:15:35
回答 2查看 60关注 0票数 0

如果我不对RTK查询使用Cache tags,RTK查询会缓存我的数据吗?

看见

代码语言:javascript
复制
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,我还能使用providesTagsinvalidatesTags吗?

EN

回答 2

Stack Overflow用户

发布于 2022-10-07 06:51:49

标记不是用于缓存,而是用于无效。所以是的,查询(在一定程度上,突变)将独立地缓存,如果您使用它们。

但是,如果没有标记,则不能提供标记或使标签失效。

票数 0
EN

Stack Overflow用户

发布于 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的标记失效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73981397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档