一个强大的异步数据管理 Hook,它将数据获取逻辑中的 loading 状态、data、error、请求、取消、刷新等所有环节都封装好了。
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| service | 异步请求函数 | (...args: any[]) => Promise<any> |
- |
| options | 配置选项 | RequestOptions |
- |
| 参数 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| manual | 是否手动触发请求 | boolean |
false |
| defaultParams | 默认参数 | any[] |
[] |
| refreshDeps | 依赖数组,当依赖变化时自动重新请求 | any[] |
[] |
| cacheKey | 缓存的键值,设置后会启用缓存 | string |
- |
| cacheTime | 缓存时间,单位为毫秒 | number |
300000 (5分钟) |
| onSuccess | 请求成功时的回调 | (data: any, params: any[]) => void |
- |
| onError | 请求失败时的回调 | (error: Error, params: any[]) => void |
- |
| onFinally | 请求完成时的回调(无论成功或失败) | (params: any[]) => void |
- |
| 参数 | 说明 | 类型 |
|---|---|---|
| data | 请求返回的数据 | any |
| error | 请求抛出的错误 | Error |
| loading | 请求的加载状态 | boolean |
| run | 手动触发请求的函数 | (...args: any[]) => Promise<any> |
| cancel | 取消当前请求 | () => void |
| refresh | 使用上一次的参数重新发起请求 | () => Promise<any> |
| reset | 重置请求状态 | () => void |