axios的二次封装面试
时间: 2023-10-09 12:04:51 浏览: 143
对于axios的二次封装,主要是为了简化HTTP请求的使用,提高开发效率,并且可以统一处理请求和响应的拦截、错误处理等功能。
下面是一种常见的axios二次封装的方式:
1. 创建一个axios实例:
```javascript
import axios from 'axios';
const instance = axios.create({
baseURL: 'https://api.example.com', // 设置请求的基本URL
timeout: 5000, // 设置请求超时时间
headers: {
'Content-Type': 'application/json' // 设置请求头
}
});
export default instance;
```
2. 封装请求方法:
```javascript
import instance from './axiosInstance';
export const get = (url, params) => {
return instance.get(url, { params });
};
export const post = (url, data) => {
return instance.post(url, data);
};
// 其他方法(如PUT、DELETE等)可根据需要进行封装
```
3. 添加请求和响应拦截器:
```javascript
import instance from './axiosInstance';
// 请求拦截器
instance.interceptors.request.use(
config => {
// 在发送请求之前做些什么,如添加token等
return config;
},
error => {
// 对请求错误做些什么
return Promise.reject(error);
}
);
// 响应拦截器
instance.interceptors.response.use(
response => {
// 对响应数据做些什么
return response.data;
},
error => {
// 对响应错误做些什么
return Promise.reject(error);
}
);
```
通过这种方式,我们可以在项目中直接引入封装的请求方法,并且可以根据需要进行拦截、错误处理等操作,从而简化了使用axios的过程。
阅读全文