我正在使用 RTK 查询,并且我正在处理一个项目,我想每 5 秒(间隔)进行一次 API 调用,并且我不知道 keepUnusedDataFor
之间的区别和refetchOnMountOrArgsChange
属性。
我应该使用哪一个来每 5 秒调用一次 API。
最佳答案
RTK 查询为每个端点+cacheKey
组合保留一个内部计数器。它增加了每个想要读取该数据的组件的计数器,即 useGetPokemonQuery("pikachu")
。当组件卸载或更改缓存键时,它会减少计数器。
当订阅计数器减至 0 时,RTK 查询会设置一个计时器,默认计时器为 60 秒。如果计时器到期时没有组件要求读取该数据,则会从缓存中删除该数据。
keepUnusedDataFor
更改计时器延迟。如果您将其设置为 60 * 60
,它将等待一小时,然后再检查是否应删除数据。如果您执行了60 * 60 * 24 * 365 * 10
,它将等待10年,然后再检查以删除数据(即“基本上永远”)。
refetchOnMountOrArgChange`,另一方面,可用于比平常更频繁地强制重新获取。
请参阅文档中的这些说明:
关于javascript - keepUnusedDataFor 和 refetchOnMountOrArgsChange 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73168110/