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();
})
}