Vue项目中如何使用Axios封装http请求详解

使用Axios进行http请求可以帮助我们快速的开发Vue项目,Axios支持浏览器、node.js和可以异步的进程通信。在Vue项目中,我们可以封装Axios进行http请求,以便于让我们的代码更加集中和易于维护。

下面就是Vue项目中如何使用Axios封装http请求的详细攻略:

1. 安装Axios

首先,在Vue项目中使用Axios,需要进行安装。运行以下命令即可安装Axios:

npm install axios --save

2. 封装Axios

在Vue项目中封装Axios,一般可以新建一个http.js文件来进行封装。

以下是一个常用的Axios封装的示例:

import axios from 'axios';
import { Message } from 'element-ui';

// 创建axios实例
const service = axios.create({
  baseURL: process.env.VUE_APP_BASE_API, // process.env.BASE_API
  timeout: 5000 // 请求超时时间
});

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

// response拦截器
service.interceptors.response.use(
  response => {
    const res = response.data;

    // 如果返回的状态码不是20000,则认为有错误
    if (res.code !== 20000) {
      Message({
        message: res.message || 'error',
        type: 'error',
        duration: 5 * 1000
      });

      // 50008: 非法的token; 50012: 其他客户端登录了; 50014: Token 过期了;
      if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
        // 请自行在引入 MessageBox
        // import { Message, MessageBox } from 'element-ui'
        MessageBox.confirm('你已经注销,可以取消以留在该页面,或者重新登录', '确定登出', {
          confirmButtonText: '重新登录',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          store.dispatch('FedLogOut').then(() => {
            location.reload(); // 为了重新实例化vue-router对象 避免bug
          });
        });
      }
      return Promise.reject('error');
    } else {
      return response.data;
    }
  },
  error => {
    console.log('err' + error); // for debug
    Message({
      message: error.message,
      type: 'error',
      duration: 5 * 1000
    });
    return Promise.reject(error);
  }
);

export default service;

3. 使用Axios封装进行http请求

在Vue项目中,我们可以直接引用封装好的Axios进行http请求,如下所示:

import request from '@/utils/request';

export function login(username, password) {
  return request({
    url: '/user/login',
    method: 'post',
    data: {
      username,
      password
    }
  });
}

以上代码是一个使用Axios封装进行登录请求的示例,其中使用了封装好的request方法来发起http请求。

类似的,我们也可以封装其他常用的http请求方式,如get、post、put、delete等。

4. 示例说明1:使用Axios进行异步请求数据

以下是一个异步请求数据的示例:

// 请求用户信息
getUserInfo() {
  this.loading = true
  axios.get('/getUserInfo')
      .then(res => {
          console.log('用户信息:', res)
          this.userInfo = res.data.data
          this.loading = false
      })
      .catch(err => {
          console.error('获取用户信息失败:', err)
          this.loading = false
      })
}

5. 示例说明2:使用Axios进行post请求

以下是一个使用Axios进行post请求的示例:

axios.post('/login', {
  username: 'foo',
  password: 'bar'
})
.then(response => {
  console.log(response);
})
.catch(error => {
  console.log(error);
});

以上就是使用Axios封装http请求的攻略了,通过这种方式能够使Vue项目开发更加方便和高效。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue项目中如何使用Axios封装http请求详解 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • 解决vue打包后vendor.js文件过大问题

    解决vue打包后vendor.js文件过大问题是一个非常重要的优化工作。通常采用分包策略和动态导入的方式,能有效地将vendor.js体积缩小到最小值。 以下是解决vue打包后vendor.js文件过大问题的完整攻略: 1. 分包策略 将项目的公共库和第三方库分别打包,使项目的vendor.js文件从一个大文件拆成多个小的vendor文件,每个文件都对应一部…

    Vue 2023年5月28日
    00
  • Vue事件的基本操作你知道吗

    当我们使用Vue构建应用程序时,事件处理是至关重要的一部分。Vue提供了许多内置的指令和事件,可以让我们轻松地处理用户操作并响应状态变化。在本篇攻略中,我们将深入探讨Vue中事件的基本操作,同时提供一些示例说明,帮助读者更好地理解。 Vue事件概述 在Vue中,我们可以使用v-on指令来监听DOM事件。该指令可以添加到任何可以触发事件的HTML元素上,例如按…

    Vue 2023年5月27日
    00
  • vue el-switch初始值(默认值)不能正确显示状态问题及解决

    Vue el-switch初始值不能正确显示状态问题及解决攻略 问题描述: vue使用element UI库中的switch组件时,如果设置了默认值,可能会出现初始状态无法正确显示的问题。 问题分析: 这个问题的原因是因为element UI中的switch并没有提供v-model来绑定value值,而是提供了v-model来绑定一个boolean值,也就是…

    Vue 2023年5月27日
    00
  • Vue3父子通讯方式及Vue3插槽的使用方法详解

    让我来给大家详细讲解一下“Vue3父子通讯方式及Vue3插槽的使用方法详解”。 Vue3父子通讯方式 在Vue3中,父组件向子组件传递数据是通过props属性来实现的,子组件接收到数据后,可以通过触发事件将数据传递回父组件。 父组件向子组件传递数据 父组件使用props属性来向子组件传递数据,示例代码如下: <template> <div&…

    Vue 2023年5月28日
    00
  • vue项目接口管理,所有接口都在apis文件夹中统一管理操作

    当我们在开发Vue项目时,通常需要与后端进行交互,而后端接口的管理十分重要。为了更好的管理接口,一种比较好的方式是采用apis文件夹来统一管理操作所有接口。 实现该功能需要遵循以下几步骤: 创建apis文件夹 在Vue项目下面src目录下创建一个apis文件夹。这个文件夹将存放与后端接口相关的文件。 定义接口文件 在apis文件夹下创建一个user.js的文…

    Vue 2023年5月28日
    00
  • 使用electron将vue-cli项目打包成exe的方法

    下面是使用electron将vue-cli项目打包成exe的详细攻略: 1. 准备工作 在开始之前,你需要确保你的电脑已经安装了以下软件: Node.js npm包管理器 Vue CLI Git 其中,Node.js建议选择LTS版本,npm建议升级至最新版本。 2. 创建Vue项目 接下来,我们来创建一个Vue项目。在命令行中输入以下命令: vue cre…

    Vue 2023年5月28日
    00
  • Vuejs开发环境搭建及热更新【推荐】

    Vuejs开发环境搭建及热更新攻略 1. 安装Node.js和npm 在开始Vuejs的开发之前,我们需要先安装Node.js。这是一款基于Chrome V8引擎的JavaScript运行环境。 在安装Node.js的时候,会自动安装npm,npm是一个可以解决Node.js插件之间依赖的包管理器。可以通过这个命令来检查是否安装成功: node -v //查…

    Vue 2023年5月28日
    00
  • vue实现文字转语音功能详解

    Vue实现文字转语音功能详解 1. 简介 随着人工智能技术的不断发展,现在有很多文字转语音的应用。在Vue项目中,我们也可以通过调用第三方API来实现文字转语音的功能。本文将详细介绍如何在Vue项目中实现文字转语音功能。 2. 文字转语音API介绍 在Vue项目中,我们可以调用第三方的文字转语音API来实现这个功能。目前市面上常用的文字转语音API有百度语音…

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