跳转到内容

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