对于 Axios 的封装,一般是为了简化使用、统一处理请求和响应,以及添加额外的功能和配置。以下是一个简单的示例,演示如何封装 Axios:
1、创建Axios实例
首先,我们需要创建一个 Axios 实例,并设置一些默认配置,例如基本 URL、请求超时时间等。
import axios from 'axios';
const instance = axios.create({
baseURL: 'https://api.example.com',
timeout: 5000,
headers: {
'Content-Type': 'application/json',
},
});
2、添加请求拦截器
我们可以在 Axios 实例上添加请求拦截器,用于在发送请求之前进行一些处理,比如添加 token、设置请求头等操作。
instance.interceptors.request.use(
(config) => {
// 在发送请求之前做些什么
config.headers.Authorization = `Bearer ${localStorage.getItem('token')}`;
return config;
},
(error) => {
// 对请求错误做些什么
return Promise.reject(error);
}
);
3、添加响应拦截器
同样地,我们可以添加响应拦截器,在接收到响应后对其进行处理,比如处理错误信息、统一处理响应数据等。
instance.interceptors.response.use(
(response) => {
// 对响应数据做些什么
return response.data;
},
(error) => {
// 对响应错误做些什么
return Promise.reject(error);
}
);
4、封装请求方法
最后,我们可以封装一些常用的请求方法,以便在项目中使用。例如,封装 get、post 方法:
export const get = (url, params) => instance.get(url, { params });
export const post = (url, data) => instance.post(url, data);
通过以上的步骤,我们就完成了对 Axios 的简单封装。这样的封装可以帮助我们统一处理请求和响应,简化接口调用方式,并提供一些额外的功能,使代码更加整洁和易于维护。