自动失效
有这样一个场景,当用户点开 todo 列表中的某一项,进入 todo 详情页并对它执行了编辑,此时我们希望上一页中的 todo 列表数据也更新为编辑后的内容,通常的做法是通过事件来触发上一页的内容更新,这样增加了维护成本。而alova
提供了 3 种方式,可以很优雅地达到这个目的:
- 使用
useFetcher
立即重新请求最新的数据,它将在数据拉取章节中讲解; - 更新缓存,这种方式将在后面的缓存设置与查询章节中详细讲解;
- 让这个响应缓存失效,当再次请求时将会因缓存失效而重新请求数据。这也是这个章节要讲解的内容。
自动失效缓存是在目标缓存中设置失效源规则,只要匹配规则都可以让目标缓存自动失效,这在很多时候省去了手动清除缓存的麻烦。
使用场景
当目标缓存与失效源是一对一 或一对多时,设置自动失效规则会很方便。
设置自动失效规则
设置这个规则很简单,你可以在创建一个带缓存的 Method 实例时,为它设置hitSource
参数即可。
失效源设置为 method 实例
以一个固定的 method 实例作为失效源,只要此 method 实例或它的克隆实例请求成功,目标缓存将被自动清除。
alova.Get('/todo/1', {
// ...
hitSource: alova.Post('/todo', {})
});