vue3中使用ts封装axios,并给出代码
时间: 2024-05-16 13:11:50 浏览: 93
好的,关于vue3中使用ts封装axios的代码,代码如下所示:
```
import axios, { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
export interface ResponseData {
code: number;
data: any;
msg: string;
}
export interface RequestConfig extends AxiosRequestConfig {}
class Axios {
private axios: AxiosInstance;
constructor() {
this.axios = axios.create({
baseURL: 'https://example.com',
timeout: 10000,
});
this.init();
}
private init() {
this.axios.interceptors.request.use(
(config: RequestConfig) => {
// 在请求发送之前做些什么
return config;
},
(error: any) => {
// 对请求错误做些什么
return Promise.reject(error);
}
);
this.axios.interceptors.response.use(
(response: AxiosResponse<ResponseData>) => {
// 对响应数据做些什么
return response.data.data;
},
(error: any) => {
// 对响应错误做些什么
return Promise.reject(error);
}
);
}
public async request<T>(config: RequestConfig): Promise<T> {
const response = await this.axios.request<ResponseData>(config);
return response as unknown as T;
}
}
export default new Axios();
```
希望这个代码对您有所帮助。如果有其他问题,也欢迎随时问我哦~
阅读全文