vite vue3配置axios

准备

参考

安装axios

yarn add axios

中文官网
在这里插入图片描述
src下新建request文件夹,该文件下新建index.ts

import axios from 'axios';
import { ElMessage } from 'element-plus';

// const errorCodeType = function (code: number): string {
// 	let errMessage: string = '未知错误';
// 	switch (code) {
// 		case 400:
// 			errMessage = '错误的请求';
// 			break;
// 		case 401:
// 			errMessage = '未授权,请重新登录';
// 			break;
// 		case 403:
// 			errMessage = '拒绝访问';
// 			break;
// 		case 404:
// 			errMessage = '请求错误,未找到该资源';
// 			break;
// 		case 405:
// 			errMessage = '请求方法未允许';
// 			break;
// 		case 408:
// 			errMessage = '请求超时';
// 			break;
// 		case 500:
// 			errMessage = '服务器端出错';
// 			break;
// 		case 501:
// 			errMessage = '网络未实现';
// 			break;
// 		case 502:
// 			errMessage = '网络错误';
// 			break;
// 		case 503:
// 			errMessage = '服务不可用';
// 			break;
// 		case 504:
// 			errMessage = '网络超时';
// 			break;
// 		case 505:
// 			errMessage = 'http版本不支持该请求';
// 			break;
// 		default:
// 			errMessage = `其他连接错误 --${code}`;
// 	}
// 	return errMessage;
// };

// 配置新建一个 axios 实例
const service = axios.create({
	baseURL: import.meta.env.VITE_API_URL,
	timeout: 50000,
	headers: { 'Content-Type': 'application/json' }
});

// 添加请求拦截器
service.interceptors.request.use(
	(config) => {
		// 在发送请求之前做些什么 token
		// if (Session.get('token')) {
		// 	config.headers!['Authorization'] = `${Session.get('token')}`;
		// }
		return config;
	},
	(error) => {
		// 对请求错误做些什么
		return Promise.reject(error);
	}
);

// 添加响应拦截器
service.interceptors.response.use(
	(response) => {
		// 对响应数据做点什么
		const res = response.data;
        return res;
		// if (res.code && res.code !== 0) {
		// 	// `token` 过期或者账号已在别处登录
		// 	if (res.code === 401 || res.code === 4001) {
		// 		Session.clear(); // 清除浏览器全部临时缓存
		// 		window.location.href = '/'; // 去登录页
		// 		ElMessageBox.alert('你已被登出,请重新登录', '提示', {})
		// 			.then(() => {})
		// 			.catch(() => {});
		// 	}
		// 	return Promise.reject(service.interceptors.response);
		// } else {
		// 	return res;
		// }
	},
	(error) => {
		// 对响应错误做点什么
		if (error.message.indexOf('timeout') != -1) {
			ElMessage.error('网络超时');
		} else if (error.message == 'Network Error') {
			ElMessage.error('网络连接错误');
		} else {
			if (error.response.data) ElMessage.error(error.response.statusText);
			else ElMessage.error('接口路径找不到');
		}
		return Promise.reject(error);
	}
);

// 导出 axios 实例
export default service;

使用

api.get('/users')
 .then((response: AxiosResponse) => {
   console.log(response.data);
 })
 .catch((error: any) => {
   console.error(error);
 });

// 发送POST请求
api.post('/users', { name: 'John Doe' })
 .then((response: AxiosResponse) => {
   console.log(response.data);
 })
 .catch((error: any) => {
   console.error(error);
 });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vite 是一个基于现代 JavaScript(ESNext)的前端构建工具,它专注于快速的冷启动和快速的热模块重载。它与 Vue3 和 Axios 搭配使用可以实现快速开发现代化的 Vue3 应用程序。 要在 Vite 中使用 Vue3,首先需要安装 Vue3 的依赖。可以使用以下命令安装: ``` npm install vue@next ``` 然后,在你的项目中创建一个 `main.ts` 文件,并添加以下内容: ```typescript import { createApp } from 'vue'; import App from './App.vue'; createApp(App).mount('#app'); ``` 接下来,安装 Vite: ``` npm install -g create-vite ``` 使用以下命令创建一个新的 Vite 项目: ``` create-vite my-vue-project --template vue-ts ``` 进入项目目录: ``` cd my-vue-project ``` 运行开发服务器: ``` npm run dev ``` 现在,你已经配置好了 ViteVue3。接下来,可以使用 Axios 来进行网络请求。 首先,安装 Axios: ``` npm install axios ``` 然后,在你的代码中使用 Axios 发起网络请求。例如,在你的 `App.vue` 文件中,你可以添加以下代码: ```javascript import { defineComponent, reactive, watchEffect } from 'vue'; import axios from 'axios'; export default defineComponent({ setup() { const data = reactive([]); watchEffect(() => { axios.get('https://api.example.com/data') .then(response => { data = response.data; }) .catch(error => { console.error(error); }); }); return { data }; } }); ``` 这是一个简单的示例,它会在组件加载时使用 Axios 发起一个 GET 请求,并将返回的数据赋值给 `data` 变量。你可以根据你的需要进行自定义和扩展。 希望这能帮到你开始使用 ViteVue3 和 Axios 进行开发!如有更多问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

假装我不帅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值