Vue3使用axios拦截器教程
概述
本教程将指导你如何在Vue3项目中使用axios拦截器。拦截器是axios的一个强大功能,它可以在请求发送之前和响应返回之后对请求进行处理和拦截。通过使用拦截器,我们可以在请求中添加请求头、对请求参数进行处理、处理错误等。
整体流程
下面是使用axios拦截器的整体流程:
步骤 | 描述 |
---|---|
1 | 安装axios和vue-axios库 |
2 | 创建一个axios实例 |
3 | 创建请求拦截器,并在其中添加请求头、处理请求参数等 |
4 | 创建响应拦截器,并在其中处理响应数据、处理错误等 |
5 | 将拦截器应用到axios实例中,并导出该实例 |
6 | 在Vue组件中引入axios实例 |
7 | 在需要发送请求的地方使用axios实例发送请求 |
接下来,我们将逐步进行这些步骤的代码实现。
步骤详解
步骤1:安装axios和vue-axios库
首先,我们需要安装axios和vue-axios库。在终端中运行以下命令:
npm install axios vue-axios
步骤2:创建一个axios实例
在项目的某个地方,我们需要创建一个axios实例。通常,我们可以将其放在一个单独的文件中,例如axiosInstance.js
。创建该文件,并添加以下代码:
import axios from 'axios';
const instance = axios.create({
baseURL: ' // 设置请求的baseURL
timeout: 5000, // 设置请求超时时间
});
export default instance;
在上面的代码中,我们使用axios的create
方法创建了一个实例。我们可以在create
方法中传递一些配置选项,例如baseURL和timeout。
步骤3:创建请求拦截器
接下来,我们需要创建一个请求拦截器,用于在请求发送之前对请求进行处理。在axiosInstance.js
文件中添加以下代码:
import axios from 'axios';
const instance = axios.create({
baseURL: '
timeout: 5000,
});
// 添加请求拦截器
instance.interceptors.request.use(
(config) => {
// 在发送请求之前做些什么
// 添加请求头
config.headers.Authorization = 'Bearer token';
// 处理请求参数
// config.params = {
// ...config.params,
// key: 'value',
// };
return config;
},
(error) => {
// 对请求错误做些什么
return Promise.reject(error);
}
);
export default instance;
在上面的代码中,我们使用interceptors.request.use
方法来添加请求拦截器。在请求拦截器中,我们可以对请求的配置进行修改,例如添加请求头、处理请求参数等。
步骤4:创建响应拦截器
接下来,我们需要创建一个响应拦截器,用于在响应返回之后对响应进行处理。在axiosInstance.js
文件中添加以下代码:
import axios from 'axios';
const instance = axios.create({
baseURL: '
timeout: 5000,
});
// 添加请求拦截器
instance.interceptors.request.use(
(config) => {
// 在发送请求之前做些什么
config.headers.Authorization = 'Bearer token';
return config;
},
(error) => {
// 对请求错误做些什么
return Promise.reject(error);
}
);
// 添加响应拦截器
instance.interceptors.response.use(
(response) => {
// 对响应数据做些什么
// 处理响应数据
// response.data = {
// ...response.data,
// key: 'value',
// };
return response;
},
(error) => {
// 对响应错误做些什么
return Promise.reject(error);
}
);
export default instance;
在上面的代码中,我们使用`interceptors.response