javascript - keepUnusedDataFor 和 refetchOnMountOrArgsChange 之间有什么区别?

标签 javascript reactjs redux redux-thunk redux-toolkit

我正在使用 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/

相关文章:

javascript - 不使用 eval 将 javascript 字符串转换为代码

reactjs - 调度和bindActionCreators有什么区别?

reactjs - Redux: mapStateToProps 为什么第二个参数 ownProps

javascript - React - 使用 reduxForm 的两个语句之间的差异

javascript - 循环中元素的显示顺序

javascript - 如何在图像的特定点显示注释?

javascript - 如何填充和删除 html select 中的选项

reactjs - ReactJS 中的 Bootstrap 下拉菜单,一次只能打开一个

javascript - 为什么 React 会以不变的状态一遍又一遍地渲染我的组件?

javascript - Javascript 中高效的人类可读日期字符串排序算法