跳转到内容

useRequest

基于 Vue Composition API 封装的请求 Hook,支持自动状态管理、防抖/节流、轮询、缓存、数据格式化等特性,适用于绝大多数异步数据请求场景。

详细使用示例

特性

  • 响应式数据
  • 自动请求/手动请求
  • 节流、防抖请求
  • 请求错误自动重试
  • 轮询请求
  • 缓存 & SWR
  • 延迟/持续 loading
  • 聚焦页面时自动重新请求
  • 自定义插件

类型声明

typescript
function useRequest<
  TData = any,
  TParams extends any[] = any[],
  TFormatData = TData,
  TRawData = any>
(
  service: RequestServiceFn<TData, TParams, TRawData>,
  options?: RequestOptions<TData, TParams, TFormatData, TRawData>,
  plugins?: RequestPluginImplement<TData, TParams, TFormatData, TRawData>[]
): RequestResult<TData, TParams, TFormatData, TRawData>;

相关类型

RequestServiceFn

RequestState

RequestMethod

RequestResult

RequestOptions

RequestContext

RequestPluginHooks

RequestPluginImplement

泛型

名称默认值继承可选描述
TDataany数据类型
TParamsany[]any[]函数入参类型
TFormatDataTData格式化数据后的类型
TRawDataany原始数据类型

入参

名称类型默认值可选描述
serviceRequestServiceFn<TData, TParams, TRawData>-异步函数(必须是通过NormAxios定义的异步函数)
optionsRequestOptions<TData, TParams, TFormatData, TRawData>-配置对象
pluginsRequestPluginImplement<TData, TParams, TFormatData, TRawData>[]-插件数组

返回值

RequestResult<TData, TParams, TFormatData, TRawData>