干货分享:Vue 3和TypeScript结合进行API封装
// Vue 3和TypeScript结合使用的API封装示例
import axios from 'axios';
import { ElMessage } from 'element-plus';
// 封装API请求函数
export const api = <T = any, R = any>(config: AxiosRequestConfig): Promise<R> => {
return new Promise((resolve, reject) => {
const instance = axios.create({
baseURL: import.meta.env.VITE_API_BASE_URL,
timeout: 10000,
});
instance(config)
.then((response: AxiosResponse<T>) => {
if (response.status >= 200 && response.status < 300) {
resolve(response.data);
} else {
ElMessage.error('请求失败,请检查网络和参数');
reject(response);
}
})
.catch((error: AxiosError) => {
ElMessage.error('请求失败,请检查网络和参数');
reject(error);
});
});
};
// 使用封装的API函数
api({
method: 'GET',
url: '/some-endpoint',
}).then((data) => {
console.log(data); // 处理响应数据
}).catch((error) => {
console.error(error); // 处理错误
});
这个示例展示了如何在Vue 3项目中使用TypeScript封装一个简单的API请求函数,并使用Element Plus的ElMessage
组件来显示错误信息。这个封装的函数可以被Vue组件或者其他API服务所调用,简化了代码,并提供了一个统一的错误处理方法。
评论已关闭