如何用vue封装axios请求

当我们使用Vue框架进行前端开发时,经常需要通过发送HTTP请求来与后台进行交互。其中,axios是一个很流行的HTTP请求工具库,它提供了简单易用、强大的API,并且可以拦截请求、响应。本文将详细讲解如何用Vue封装axios请求,并提供两个例子供参考。

安装axios和Vue-axios

使用npm或者yarn安装axios和Vue-axios:

npm install axios vue-axios --save

或者

yarn add axios vue-axios

创建axios实例

在src目录下,新建一个utils文件夹,在文件夹内创建一个axios.js文件,这个文件中我们创建axios实例并进行一些配置,比如设置API前缀、拦截请求等。

import axios from 'axios'

const instance = axios.create({
  baseURL: 'http://api.example.com', // 设置api前缀
  timeout: 10000, // 超时时间
  headers: { 'Content-Type': 'application/json;charset=UTF-8' } // 请求头
})

// 拦截请求
instance.interceptors.request.use(config => {
  // do something
  return config
}, error => {
  // do something
  return Promise.reject(error)
})

// 拦截响应
instance.interceptors.response.use(response => {
  // do something
  return response
}, error => {
  // do something
  return Promise.reject(error)
})

export default instance

在Vue中使用

在Vue项目中的main.js文件中,引入axios和Vue-axios,并将其挂载到Vue原型上,使其在每一个实例中可用。

import Vue from 'vue'
import App from './App.vue'
import axios from './utils/axios'
import VueAxios from 'vue-axios'

Vue.use(VueAxios, axios)

new Vue({
  render: h => h(App),
}).$mount('#app')

现在,在Vue组件中,就可以像下面这样使用axios了。

export default {
  data () {
    return { 
      users: [] 
    }
  },
  mounted () {
    this.$axios.get('users')
      .then(response => {
        console.log(response.data)
        this.users = response.data
      })
      .catch(error => console.log(error))
  }
}

示例1:发送带有token的请求

对于需要完成用户验证后才能访问的接口,我们需要在请求头中添加token。这里提供一个例子,展示如何在我们封装的axios中实现添加token。

const instance = axios.create({
  baseURL: 'http://api.example.com',
  timeout: 10000,
  headers: { 'Content-Type': 'application/json;charset=UTF-8' }
})

// 拦截请求,添加token
instance.interceptors.request.use(config => {
  const token = sessionStorage.getItem('token')
  if (token) {
    config.headers.Authorization = `Bearer ${token}`
  }
  return config
}, error => {
  return Promise.reject(error)
})

示例2:上传文件

当我们需要上传文件时,可以使用axios的FormData对象。下面提供一个例子,演示如何在我们封装的axios中使用FormData上传文件。

const handleUpload = async (file) => {
  const formData = new FormData()
  formData.append('file', file) // 将需要上传的文件放到FormData中
  try {
    const response = await this.$axios.post('/upload', formData, {
      headers: {
        'Content-Type': 'multipart/form-data' // 告诉后台上传的是文件
      }
    })
    console.log(response.data)
  } catch (error) {
    console.log(error)
  }
}

以上就是使用Vue封装axios请求的攻略,通过封装实例可以提高开发效率,更好的管理请求,提高代码的可读性和可维护性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何用vue封装axios请求 - Python技术站

(0)
上一篇 2023年6月25日
下一篇 2023年6月25日

相关文章

  • webmvcconfigureradapter详解和过时后的替代方案

    当然,我很乐意为您提供有关“WebMvcConfigurerAdapter详解和过时后的替代方案”的完整攻略。以下是详细的步骤和两个示例: 1. WebMvcConfigurerAdapter是什么? WebMvcConfigurerAdapter是Spring MVC框架中的一个类,用于配置Spring MVC的行为。它提供了许多方法,可以用于配置拦截器、…

    other 2023年5月6日
    00
  • iyuu自动辅种工具配置及常见错误(windows)

    以下是关于“iyuu自动辅种工具配置及常见错误(windows)”的完整攻略,包含两个示例。 iyuu自动辅种工具配置及常见错误(windows) iyuu自动辅种工具是一款常用的自动化工具,可以帮助用户自动辅种。在windows系统中,我们可以通过配置iyuu自动辅种工具来实现自动辅种。下面我们将介绍iyuu自动辅种工具的配置方法和常见错误。 1. iyu…

    other 2023年5月9日
    00
  • DevC++怎么创建头文件? DevC++建立头文件的方法

    下面是详细讲解“DevC++怎么创建头文件? DevC++建立头文件的方法”的完整攻略。 创建头文件 头文件是C++程序中可以包含的代码文件,其中通常包含函数原型、宏定义和其他有用的信息。在DevC++中,可以使用以下步骤创建头文件: 打开DevC++并创建一个新工程。 选择File > New > Header File。可以看到一个新的文本编…

    other 2023年6月27日
    00
  • PHP无限分类的类

    下面是关于“PHP无限分类的类”的完整攻略: 一、前置知识 在学习和使用无限分类的类之前,需要对以下知识点有一定的了解和掌握: 类与对象的基本概念 PHP中的递归函数 数据库基本操作及相关语句(如SELECT、INSERT、UPDATE、DELETE) 如果对以上知识点均不熟悉,建议先学习相关教程,再来学习本文。 二、无限分类的类 在实际业务开发中,经常会遇…

    other 2023年6月27日
    00
  • DOS 批处理命令For循环命令详解

    DOS 批处理命令For循环命令详解 For 循环命令是DOS批处理中一个重要的命令,它可以在批处理文件中自动进行一些重复的操作。接下来我将详细讲解For循环命令的各种参数以及使用方法。 基本语法 For 循环命令的基本语法如下: for %variable in (set) do command 其中 %variable 代表一个占位符,可以是任意的变量名…

    other 2023年6月26日
    00
  • delphi中messagebox用法

    以下是Delphi中MessageBox用法的攻略,包含两个示例: 什么是MessageBox? MessageBox是Delphi中的一个函数,用于在应用程序中显示消息框。消息框是一种常见的用户界面元素,用于向用户显示信息、警告或错误。 如何使用MessageBox? 要使用MessageBox,您可以按照以下步骤进行操作: 打开Delphi IDE并创建…

    other 2023年5月6日
    00
  • linux中的常用命令与快捷键介绍

    接下来我会详细介绍“linux中的常用命令与快捷键”,以下是完整攻略: Linux中的常用命令与快捷键介绍 常用命令 文件/目录操作命令 ls: 列出当前目录下的所有文件和文件夹 cd <directory>: 进入指定的目录 mkdir <directory>: 创建新的目录 rm <file>: 删除文件 rm -r …

    other 2023年6月26日
    00
  • Linux查找处理文件名后包含空格的文件(两种方法)

    Linux查找处理文件名后包含空格的文件(两种方法) 在Linux系统中,如果文件名中含有空格,那么会不方便我们的操作。因此需要查找和处理这些文件名包含空格的文件。本节介绍两种方法。 方法一(使用find命令) find命令是Linux中非常常用的命令之一,可以用于查找文件和目录。find命令可以使用-name选项来查找匹配指定模式的文件名,可以使用-exe…

    other 2023年6月26日
    00
合作推广
合作推广
分享本页
返回顶部