变更列表
使用
vue-demi
兼容 vue2新增自定义缓存
getCache
、setCache
和clearCache
。开启缓存的情况下,设置了相同
cacheKey
的请求将会被缓存和复用。新增
runAsync
和refreshAsync
,将返回Promise
。新增
definePlugin
,可以通过插件来扩展 useRequest 的功能。节流/防抖模式下可以使用
runAsync
返回正常的Promise
。新增
useRequestProvider
hooks,用于注入 options 配置。新增
refreshDepsAction
选项,用于自定义refreshDeps
触发后的行为。新增
loadingKeep
。refreshDepsAction
在manual=true
时,也会被refreshDeps
的改变而触发。移除 内部集成请求库,
Service
不再支持字符或对象。 迁移帮助移除
formatResult
。 迁移帮助移除
queryKey
,即移除了并行模式 迁移帮助run
不再返回Promise
迁移帮助请求出错时,
data
不再会被清空修改
ready
的逻辑data
和error
改为shallowRef
usePagination
移除了reload
方法和reloading
。如需要对应的需求,可自行实现。移除了
RequestConfig
组件 迁移帮助重构了
useLoadMore
,具体 API 可查看详情 API 说明cacheKey
支持传入函数:cacheKey: (params?: P) => string
useRequest(getUser,{ cacheKey: (params?:P):string => { <!-- 初始化时,params 会为 undefined,需要手动判断并返回一个空字符串 --> if(params){ return `user-key-${params[0].name}` } return '' } })
部分
options
支持响应式,如下所示type ReactivityOptions = { loadingDelay: number | Ref<number>; pollingInterval: number | Ref<number>; debounceInterval: number | Ref<number>; debounceOptions: DebounceOptions | Reactive<DebounceOptions>; throttleInterval: number | Ref<number>; throttleOptions: ThrottleOptions | Reactive<ThrottleOptions>; refreshOnWindowFocus: boolean | Ref<boolean>; refocusTimespan: number | Ref<number>; errorRetryCount: number | Ref<number>; errorRetryInterval: number | Ref<number>; };
迁移帮助
const getUser = userName => {
return axios.get('api/user', {
params: {
name: userName,
},
});
};
useRequest(getUser, options);
const getUser = async () => {
const results = await axios.get('api/user');
// Process the final data here
return results.data;
};