Vue2 封装 Axios

什么是 Axios?

Axios 是一个基于 Promise 的 HTTP 请求客户端,可以在浏览器和 Node.js 环境中使用。它支持请求和响应拦截器,可以轻松地与 Vue.js 结合使用。

为什么需要封装 Axios?

在实际项目中,我们经常会遇到需要发送多个请求、统一处理错误等情况。为了简化代码,提高开发效率,我们可以封装 Axios,将公共逻辑抽离出来,减少重复代码。

封装 Axios

下面是一个简单的封装 Axios 的示例:

// api.js
import axios from 'axios'

const instance = axios.create({
  baseURL: '
})

instance.interceptors.request.use(config => {
  // 在发送请求之前做些什么
  return config
}, error => {
  // 对请求错误做些什么
  return Promise.reject(error)
})

instance.interceptors.response.use(response => {
  // 对响应数据做些什么
  return response.data
}, error => {
  // 对响应错误做些什么
  return Promise.reject(error)
})

export default instance

在这个示例中,我们首先创建了一个 Axios 实例,然后使用 interceptors 添加了请求和响应拦截器,分别对请求和响应进行处理。

序列图

下面是一个发送 GET 请求并处理响应的序列图:

sequenceDiagram
    participant Vue
    participant Axios
    participant API
    
    Vue ->> Axios: 发送 GET 请求
    Axios ->> API: 发送 GET 请求
    API -->> Axios: 返回响应数据
    Axios -->> Vue: 返回响应数据

流程图

下面是封装 Axios 的流程图:

flowchart TD
    A(开始)
    B[创建 Axios 实例]
    C[添加请求拦截器]
    D[添加响应拦截器]
    E(结束)
    A --> B
    B --> C
    C --> D
    D --> E

总结

通过封装 Axios,我们可以在项目中统一处理请求和响应,提高代码复用性和可维护性。同时,使用 Axios 可以简化 HTTP 请求的处理过程,让我们更专注于业务逻辑的实现。希望本文对你有所帮助,谢谢阅读!