跳转到内容

useRequest / RequestPluginHooks

接口:RequestPluginHooks ​

插件钩子类型

类型声明 ​

typescript
import { AxiosResponse } from 'axios'

export interface RequestPluginHooks<
  // 数据
  TData = any,
  // 方法参数
  TParams extends any[] = any[],
  // 格式化数据
  TFormatData = TData,
  // 原始数据
  TRawData = any,
> {
  /**
   * 请求之前触发
   */
  onBefore?: (params: TParams) => {
    // 是否直接 return,停止后续执行
    isReturned?: boolean
  } | void

  /**
   * 请求开始时触发
   */
  onRequest?: (service: (...params: TParams) => Promise<ResponseContent<TData, TRawData>>, params: TParams) => {
    servicePromise: Promise<ResponseContent<TData, TRawData>>
  }

  /**
   * 请求失败时触发
   */
  onError?: (
    error: ResponseError,
    params: TParams,
    response: AxiosResponse<TRawData>,
  ) => void

  /**
   * 请求成功时触发
   */
  onSuccess?: (
    data: TFormatData,
    params: TParams,
    response: AxiosResponse<TRawData>,
  ) => void

  /**
   * 当连续请求的时候,最后一个服务请求完成之后触发
   */
  onFinallyFetchDone?: () => void

  /**
   * 最后执行,不管 server 成功还是失败都会执行
   */
  onFinally?: (params: TParams) => void

  /**
   * 通过 mutate 修改数据时触发
   */
  onMutate?: (newData: TFormatData) => void

  /**
   * 通过 cancel 取消请求时触发
   */
  onCancel?: () => void
}

泛型 ​

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

onBefore ​

请求之前钩子

入参 ​

名称类型默认值描述
paramsTParams请求参数

返回值 ​

{ isReturned?: boolean } | void

名称类型必填描述
isReturnedboolean否是否直接 return,停止后续执行

onRequest ​

请求开始时触发

入参 ​

名称类型默认值描述
service(...params: TParams) => Promise<ResponseContent<TData, TRawData>>请求服务
paramsTParams请求参数

返回值 ​

名称类型必填描述
servicePromisePromise<ResponseContent<TData, TRawData>>是服务Promise

onError ​

请求失败时触发

入参 ​

名称类型默认值描述
errorResponseError错误信息
paramsTParams请求参数
responseAxiosResponse<TRawData>axios原始响应

返回值 ​

void

onSuccess ​

请求成功时触发

入参 ​

名称类型默认值描述
dataTFormatData数据 | 格式化后的数据
paramsTParams请求参数
responseAxiosResponse<TRawData>axios原始响应

返回值 ​

void

onFinallyFetchDone ​

当连续请求的时候,最后一个服务请求完成之后触发

返回值 ​

void

onFinally ​

最后执行,不管 server 成功还是失败都会执行

入参 ​

名称类型默认值描述
paramsTParams请求参数

返回值 ​

void

onMutate ​

通过 mutate 修改数据时触发

入参 ​

名称类型默认值描述
dataTFormatData数据 | 格式化后的数据

返回值 ​

void

onCancel ​

通过 cancel 取消请求时触发

返回值 ​

void