Skip to content

useFetch

用于发起请求的hook,支持数据返回回调,finally回调。

一般会在项目中重写该hook,因为每个项目的api接口返回结构不同,可参考下面的源码进行修改。

代码示例

ts
useFetch(
  () => axios.get('/api'), 
  (res) => {
    console.log('success callback', res);
  }, 
  () => {
    console.log('finally callback');
  },
);

参数

参数说明类型默认值
requestFun请求数据的函数() => Promise<AxiosResponse<any>>-
successCallback请求成功的回调函数(data: any) => void-
finallyCallback请求结束的回调函数() => void-

源码

ts
import type { AxiosResponse } from "axios";

// 封装请求的公共函数
export const useFetch = (
  requestFun: () => Promise<AxiosResponse<any>>,
  callback: (data: any) => void,
  finallyCallback?: () => void,
) => {
  requestFun().then((res) => {
    const { code, data } = res.data;
    if (code !== 0) {
      return;
    }
    callback(data);
  }).finally(() => {
    finallyCallback && finallyCallback();
  })
}