在 Vue3 中集成 Axios
在 Vue3 中使用 Axios 是前端项目最常见的网络请求方案。通过合理封装,可以实现全局请求配置、拦截器、错误处理等功能。
1. 安装 Axios
npm install axios
# 或者使用 yarn
yarn add axios
`
2. 在 main.js 中注册全局 Axios 实例
在 Vue3 项目中,可以通过 app.config.globalProperties 或 provide/inject 将 Axios 全局注入。
// main.js
import { createApp } from 'vue';
import App from './App.vue';
import axios from 'axios';
const app = createApp(App);
// 设置基础配置
axios.defaults.baseURL = 'https://api.example.com';
axios.defaults.timeout = 10000;
// 全局挂载
app.config.globalProperties.$axios = axios;
app.provide('axios', axios);
app.mount('#app');
3. 在组件中使用 Axios
方法一:通过 this.$axios
<script setup>
import { getCurrentInstance } from 'vue';
const { proxy } = getCurrentInstance();
async function getUserData() {
const res = await proxy.$axios.get('/user/info');
console.log(res.data);
}
</script>
<template>
<button @click="getUserData">获取用户信息</button>
</template>
方法二:使用 inject 获取
<script setup>
import { inject } from 'vue';
const axios = inject('axios');
async function fetchData() {
const res = await axios.get('/posts');
console.log(res.data);
}
</script>
<template>
<button @click="fetchData">加载数据</button>
</template>
4. 封装请求模块
在大型项目中,建议在 src/utils/request.js 中封装 Axios:
// src/utils/request.js
import axios from 'axios';
const service = axios.create({
baseURL: import.meta.env.VITE_API_BASE_URL,
timeout: 8000,
});
service.interceptors.response.use(
res => res.data,
err => Promise.reject(err)
);
export default service;
然后在组件中使用:
import request from '@/utils/request';
request.get('/api/list').then(data => {
console.log(data);
});
5. 最佳实践建议
- ✅ 使用
.env文件区分开发与生产环境; - ✅ 封装通用的请求模块,减少重复代码;
- ✅ 结合拦截器统一处理 Token 与错误提示;
- ✅ 在组合式 API 中可直接
inject('axios')或使用封装模块。
💡 小提示:在 Vue3 + Vite 项目中,推荐使用
import.meta.env管理 API 地址与环境变量,结合 Axios 实现灵活、可维护的网络层结构。
相关内容
- 缓存与重复请求优化 本章节介绍如何在前端项目中使用 Axios 优化请求缓存与防止重复请求,包括浏览器缓存、内存缓存、请求去重策略、拦截器结合缓存、缓存过期处理等方法,帮助提高接口...
- 前端容错与兜底策略 本章节讲解如何在前端使用 Axios 实现容错与兜底策略,包括请求失败处理、默认数据返回、全局错误提示、降级方案、备用接口调用等方法,确保应用在网络异常或接口异...
- 接口统一管理与类型定义 本章节介绍如何在前端项目中使用 Axios 统一管理接口请求,包括接口模块化、统一封装、请求类型定义、TypeScript 类型约束、接口文档维护及调用规范化。...
- 取消请求(CancelToken 与 AbortController) 本章节讲解如何在 Axios 中取消请求,包括使用 CancelToken 和 AbortController 两种方式,适用于用户快速切换页面或重复请求时,防...
- 同时发送多个请求(axios.all / axios.spread) 本章节讲解如何使用 Axios 同时发送多个请求,包括 axios.all 和 axios.spread 的使用方法,帮助前端项目高效处理并发请求,提高数据获取...
- 防止重复请求的策略 本章节讲解如何在 Axios 中防止重复请求,包括使用请求标识、拦截器和节流/防抖机制,避免用户多次触发同一接口导致的冗余请求,提高前端性能和接口稳定性。