vue3-002 ts泛型封装axios请求
前端开发

import { reactive, toRefs } from 'vue';
import axios from 'axios';
interface TResult<T> {
result: null | T;
loadding: boolean;
error: any;
}
const useUrlLoader = <T>(url: string) => {
const data: TResult<T> = reactive({
result: null,
loadding: true,
error: null,
});
axios
.get(url)
.then((rawData) => {
data.result = rawData.data;
})
.catch((e) => {
data.error = e;
})
.finally(() => {
data.loadding = false;
});
return toRefs(data);
};
![[衡天云]爆款云服务器 低至12元/月](/hty.png)