Nuxt Axios 拦截器配置

在使用 Nuxt.js 构建应用程序时,我们通常会使用 Axios 来处理网络请求。Axios 是一个基于 Promise 的 HTTP 客户端,可以在浏览器和 Node.js 中使用。在实际开发中,我们经常需要在发送请求或接收响应之前对其进行处理,这时就需要用到 Axios 的拦截器。

什么是 Axios 拦截器?

Axios 拦截器允许我们在请求或响应被处理前对它们进行更改或干预。我们可以在拦截器中添加处理逻辑,比如设置请求头、添加loading动画或处理错误等。在 Nuxt.js 中,我们可以方便地配置 Axios 拦截器来实现这些功能。

在 Nuxt.js 中配置 Axios 拦截器

首先,我们需要在 Nuxt.js 项目中安装 Axios 模块:

npm install @nuxtjs/axios

然后,在 nuxt.config.js 中配置 Axios 模块:

// nuxt.config.js
export default {
  modules: [
    '@nuxtjs/axios',
  ],
  axios: {
    baseURL: '
  },
}

接下来,我们可以在项目中创建一个插件来配置 Axios 拦截器:

// plugins/axios.js
export default function ({ $axios }) {
  $axios.onRequest((config) => {
    // 添加请求头等操作
    return config
  })

  $axios.onError((error) => {
    // 处理错误
    return Promise.reject(error)
  })
}

最后,我们需要在 nuxt.config.js 中引入这个插件:

// nuxt.config.js
export default {
  plugins: [
    '~/plugins/axios',
  ],
}

现在,我们已经完成了 Axios 拦截器的配置。在请求发送前和响应返回前,都可以在拦截器中添加自定义逻辑。

Axios 拦截器流程

journey
    title Axios 拦截器流程
    section 请求发送前
        Nuxt.js --> Axios: 发送请求
        Axios --> 拦截器: 请求拦截
        拦截器 --> Axios: 继续请求
    section 响应返回前
        Axios --> 后端API: 发送请求
        后端API --> Axios: 返回响应
        Axios --> 拦截器: 响应拦截
        拦截器 --> Nuxt.js: 处理响应

通过以上配置,我们可以方便地使用 Nuxt.js 和 Axios 实现网络请求,并通过拦截器配置来实现自定义逻辑的处理。这样可以让我们更灵活地控制请求和响应的行为,提高开发效率和代码质量。希望本文能对你有所帮助,谢谢阅读!