react-query中staleTime和cacheTime的区别

957 阅读1分钟

staleTime代表当期缓存的新旧状态,默认是0,也就是说缓存用一次后立刻标记为旧数据(下次使用时需要更新)

cacheTime代表缓存的有效期,过期后会被删除。

这两个参数都是控制缓存的,为什么需要两个的?

个人理解原因:

  1. 缓存被staleTime标记为旧数据时,不会被删除,下次请求发生时会先返回这个旧数据供UI渲染,然后在后台发请求更新数据,用于较少白屏时间。
  2. 有可能数据就是一个空数据,所以不能用一个cacheTime就判断是否真的需要发送请求。