对于 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 的简单封装。这样的封装可以帮助我们统一处理请求和响应,简化接口调用方式,并提供一些额外的功能,使代码更加整洁和易于维护。