You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

未配置Cache tags时RTK Query是否缓存数据?无tagTypes能否使用providesTags与invalidatesTags?

RTK Query 缓存与标签相关问题解答

1. 不使用Cache tags,RTK Query仍会缓存数据吗?

会的。RTK Query的默认行为就是缓存查询结果,Cache tags(标签系统)只是用来更精细地控制缓存的更新、失效逻辑,不是缓存功能的必要前提。即使完全不配置任何标签,只要发起getPosts这类查询请求,RTK Query就会根据请求的参数、路径等生成唯一缓存键,把返回的数据存在Redux store里。后续相同的查询请求会直接读取缓存,不会重复发起网络请求(除非你手动配置了缓存过期、refetchOnMount等规则)。

2. 未配置tagTypes: ['Post'],RTK Query是否仍会查询帖子数据?

当然会。tagTypes只是用来定义你后续要用到的标签类型,和查询请求本身能否发起、能否获取数据没有任何关系。你提供的代码里,getPosts查询会正常发送请求到/posts,拿到数据后缓存起来,完全不受tagTypes配置的影响。

3. 无tagTypes配置时,能否使用providesTags和invalidatesTags?

可以用,但不推荐,而且可能引发潜在问题:

  • 如果你直接在providesTags里写['Post']但没在tagTypes里声明,RTK Query不会报错,但这不符合规范,后续扩展标签相关逻辑时容易出现混乱。
  • 正确的做法是先在createApi的tagTypes数组里声明要使用的标签类型(比如tagTypes: ['Post']),再在providesTags和invalidatesTags里引用这些已声明的标签。这样RTK Query能更好地追踪标签关联,避免缓存更新不生效的情况。

内容的提问来源于stack exchange,提问作者Moon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 15:20:33