John
John
@caocaoem 有提供一个 `definePlugin` 可以进行二次封装,只是我忘了导出而已😅
@dmyz 如果你要一定时间内不请求接口的,你应该设置一个 `staleTime`
@dmyz 请单独提issue,并提供重现示例。不要直接说什么什么不行
@yuntian001 2.x 在设置了cacheKey 的情况下,请求也是会进行复用的
> cahce 确认你测的版本是 v2 哦 > @John60676 你看下面的代码 一进入页面会发起三次请求 组件加载一次 两次调用api共三次(因为三次调用时间间隔小cache还没写入成功) 只有在点击按钮后 才会复用请求 不发起真正的请求(因为这时候cahce已经写入成了) > > ``` > > import { useRequest } from 'vue-request'; > import axios from 'axios';...
> 产生这个问题的原因是,发起请求时上一个请求还没完成缓存还没写入。建议第一次请求就记录下,后续请求在拿不到cache时做个事件注册,等第一次请求完成后就触发这个事件event。 https://codesandbox.io/s/sharp-blackwell-88uops 处理逻辑没有问题哦。这里的逻辑是这样的:当缓存还没建立时,确保在同一个组件里同一个请求使用最新的那个[相关代码](https://github.com/AttoJS/vue-request/blob/next/src/core/plugins/useCachePlugin.ts#L90);如果是不同组件,发起同一个请求,则会使用缓存中的请求。
> https://codesandbox.io/s/sharp-blackwell-88uops @yuntian001 这个 demo 就是你说的场景呀
@yuntian001 `manual` 为 `false` 或者不设置的情况下,会在挂载时发起请求。文档:https://www.attojs.com/api/#manual 2.x 的文档还没写,但是与 1.x 有区别的地方都在该 issue 开头列出来了,所以可以用 1.x 的文档对照本文先用着
这个问题有待讨论,泛型这个方案不太好
Will be added in next version