vue-cli 使用axios的操作方法及整合axios的多种方法

一、什么是axios?

axios 是一个基于 Promise 的HTTP 库,可以用在浏览器和 node.js 中,axios 既可以用在浏览器端和node端,它是基于 ajax 和 xmlHttpRequest 封装的。它的优点在于,它可以让前后端的数据请求更加简单和易用,并且具有广泛的应用场景。

二、 vue-cli 中如何使用axios?

1、安装 axios

在使用 axios 之前,首先要安装 axios。在终端中使用以下命令进行安装:

npm install axios --save

2、在项目中引入axios

在 main.js 中,我们引入axios 并建立与后端服务器的连接,引入代码如下:

import axios from 'axios'
Vue.prototype.$http= axios

3、在 Vue 组件中使用 axios

在 Vue 组件中使用 axios 可以直接调用 $http 对象,例如:

methods: {
    getHelloWorld() {
      this.$http.get('http://localhost:8080/hello').then(response => {
        console.log(response.data)
      })
    }
  }

4、设置 axios 的默认请求头

在 axios 中可以设置默认请求头,比如对于 post 请求,我们可以设置 Content-Type:

import axios from 'axios';
import qs from 'qs';

axios.defaults.baseURL = 'http://localhost:8080';
axios.defaults.timeout = 10000;
axios.defaults.headers.post['Content-Type'] = 'application/x-protobuf';

// post 请求
axios.post('/user', qs.stringify({username: 'simsun'}))
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.log(error);
  });

5、全局拦截器

axios 提供了请求和响应的拦截器,可以在请求或响应被 then 或 catch 处理前拦截它们。

在 request 拦截器中,可以对请求进行一些统一处理,比如设置全局token。在 response 拦截器中,可以对响应进行统一处理,比如对所有的 401 响应进行重定向。

// 添加请求拦截器
axios.interceptors.request.use(
  config => {
    // 在发送请求之前做些什么
    config.headers.Authorization = localStorage.getItem('token') || '';
    return config;
  },
  error => {
    // 对请求错误做些什么
    return Promise.reject(error);
  }
);

// 添加响应拦截器
axios.interceptors.response.use(
  response => {
    // 对响应数据做点什么
    return response;
  },
  error => {
    // 对响应错误做点什么
    return Promise.reject(error);
  }
);

三、如何整合axios的多种方法

1、简单使用

我们可以直接使用 axios.get、axios.post 等方法发送请求。

axios.get('/user?id=123')
axios.post('/user', {id: '123'})

2、创建 axios 实例

如果我们需要发送多个请求,我们可以使用 axios.create 创建一个 axios 的实例,从而为给实例设定配置选项。

const instance = axios.create({
  baseURL: 'http://localhost:8080',
  timeout: 10000,
  headers: {
    'Content-Type': 'application/x-protobuf'
  },
  transformRequest: [function (data, headers) {
    // 对 data 进行任意转换处理
    return data;
  }],
});

instance.get('/user?id=123')
instance.post('/user', {id: '123'})

3、封装 axios 通用方法

我们可以封装一个 axios 请求的工具类,在其中封装 get、post 等请求方法,我们可以通过这些方法来完成请求操作。

/**
 * axios 通用请求方法
 * @param url 请求的地址
 * @param method 请求的方式,默认为get
 * @param params 请求的参数,get请求可直接拼接url参数
 * @returns {Promise<any>} 请求的结果
 */
function request(url, method = 'get', params = {}) {
  const instance = axios.create({
    baseURL: 'http://localhost:8080',
    timeout: 10000,
    headers: {
      'Content-Type': 'application/x-protobuf'
    },
    transformRequest: [function (data, headers) {
      return data;
    }],
  });

  return new Promise((resolve, reject) => {
    instance({
      url: url,
      method: method,
      params: method === 'get' ? params : {},
      data: method === 'post' ? params : {},
      transformResponse: [function (data) {
        // 对响应数据进行任意转换处理
        return data;
      }],
    }).then(response => {
      resolve(response.data);
    }).catch(error => {
      reject(error);
    });
  });
}

// 使用方法
request('/user?id=123')
request('/user', 'post', {id: '123'})

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue-cli 使用axios的操作方法及整合axios的多种方法 - Python技术站

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

相关文章

  • Java数据结构中图的进阶详解

    Java数据结构中图的进阶详解 理解概念 图(Graph)是计算机科学中的一个重要概念。它是由顶点的有穷非空集合和顶点之间的边的集合组成,通常表示为:$G(V, E)$,其中$G$表示一个图,$V$表示图中顶点的集合,$E$表示图中边的集合。 图中的边分为有向边和无向边两种类型,有向边表示连接的两个顶点有一个方向,而无向边则没有。图中边的实际应用会有很多种,…

    other 2023年6月27日
    00
  • Handler与Android多线程详解

    Handler与Android多线程详解 在Android开发中,由于应用需要和UI交互,我们通常需要使用多线程来控制任务的执行。而在多线程的场景下,我们经常会用到Handler这个类。Handler可以使我们在不同线程之间进行通信。 Handler概述 Handler是Android的一个类,用于异步线程之间的消息更改。通常情况下,Handler是响应Me…

    other 2023年6月27日
    00
  • Win11 jdk环境变量配置教程

    以下是如何在Windows 11操作系统中配置JDK环境变量的攻略。 第一步:下载并安装JDK 首先,需要下载JDK安装文件。可以在Oracle官网上下载适合自己操作系统的JDK版本,下载完成后,双击运行安装程序。在安装界面中,可以自行设置安装路径,也可以使用默认路径。建议将JDK安装在独立的盘符下。 第二步:找到JDK安装路径 安装完成后,需要找到JDK的…

    other 2023年6月27日
    00
  • 【odoo14】第一章、安装odoo的开发环境

    【odoo14】第一章、安装odoo的开发环境 本篇文章将介绍如何安装odoo的开发环境,以下步骤适用于odoo14版本。 1. 安装Python3及其相关依赖库 odoo使用Python3作为开发语言,因此需要先安装Python3及其相关依赖库。 在Linux下,可以使用以下命令进行安装: sudo apt-get install python3 pyth…

    其他 2023年3月28日
    00
  • 微软工具ilmerge

    微软工具ilmerge ilmerge是由微软提供的一个命令行工具,可以把多个.NET程序集合并成一个程序集。 安装和使用 ilmerge可以从NuGet中获取,也可以从官方网站下载。 安装好ilmerge后,打开命令行工具,切换到包含程序集文件的目录中,使用以下命令即可将多个程序集合并成一个程序集: ilmerge /out:Merged.dll Asse…

    其他 2023年3月29日
    00
  • MAC下如何设置JDK环境变量

    下面是在MAC下设置JDK环境变量的完整攻略: 首先,安装JDK,并获取JDK的安装路径。以JDK 8为例,安装路径通常为:/Library/Java/JavaVirtualMachines/jdk1.8.0_XXX.jdk/Contents/Home/,其中XXX为JDK的具体版本号。 打开终端,进入家目录,并创建一个.bash_profile文件,用于设…

    other 2023年6月27日
    00
  • python中shape的运用

    在Python中,shape是一个用于获取数组或矩阵的形状的函数。在本攻略中,我们将详细讲解如何使用shape,并提供两个示例说明。 使用shape函数 在Python中,shape函数是一个用于获取数组或矩阵的形状的函数。该函数返回一个元组,其中包含数组或矩阵的维度信息。以下是一个示例,演示了如何使用shape函数: import numpy as np …

    other 2023年5月9日
    00
  • php解决跨域问题 你会用哪种方法

    以下是关于PHP解决跨域问题的完整攻略,包括跨域问题的定义、解决方法、示例说明和注意事项。 跨域问题的定义 跨域问题是指在开发中由于浏览器的同源策略限制,导致在一个域名下的网页无法直接访问另一个域名下的资源。例如,一个网页在http://www.example.com域名下,无法直接访http://www.anotherexample域名下的资源。 解决方法…

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