vue3 Typescript asiox140 封装请求
在Vue 3中使用TypeScript和axios 1.4.0进行请求封装的示例代码如下:
首先,安装需要的依赖:
npm install axios@1.4.0
然后,创建一个名为api.ts的文件,用于封装请求:
import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';
// 创建一个axios实例
const instance = axios.create({
baseURL: 'http://api.example.com',
timeout: 5000, // 请求超时时间
});
// 请求拦截器
instance.interceptors.request.use(
(config: AxiosRequestConfig) => {
// 在请求发送之前做一些处理,比如添加token到请求头
// config.headers['Authorization'] = 'Bearer ' + token;
return config;
},
(error: any) => {
// 处理请求错误
return Promise.reject(error);
}
);
// 响应拦截器
instance.interceptors.response.use(
(response: AxiosResponse) => {
// 在响应数据之前做一些处理
// 比如对响应进行统一的错误处理
return response.data;
},
(error: any) => {
// 处理响应错误
return Promise.reject(error);
}
);
// 导出封装的请求方法
export const get = (url: string, params?: any) => {
return instance.get(url, { params });
};
export const post = (url: string, data?: any) => {
return instance.post(url, data);
};
// 其他请求方法,比如put、delete等,可以根据需要进行封装
接下来,在需要使用请求的地方,可以直接导入api.ts中封装的请求方法进行使用:
import { get, post } from './api';
// 发起GET请求
get('/users', { page: 1, pageSize: 10 })
.then((response) => {
// 处理响应数据
console.log(response);
})
.catch((error) => {
// 处理请求错误
console.error(error);
});
// 发起POST请求
post('/users', { name: 'John', age: 25 })
.then((response) => {
// 处理响应数据
console.log(response);
})
.catch((error) => {
// 处理请求错误
console.error(error);
});
// 其他请求方法的使用类似
以上示例代码封装了GET和POST请求,你可以根据需要继续封装其他类型的请求,比如PUT、DELETE等
原文地址: https://www.cveoy.top/t/topic/hQef 著作权归作者所有。请勿转载和采集!