vue项目中axios的封装请求

yizhihongxing

下面我将详细讲解“vue项目中axios的封装请求”的完整攻略。

1. 什么是axios

Axios 是一个基于 Promise 的 HTTP 库,可以用在浏览器和 node.js 中,它是一个封装了XMLHttpRequest和Promise的JavaScript平台应用程序接口(API)。

2. 封装Axios的三种方式

2.1 最简单的封装

在src文件夹下创建一个utils文件夹,在utils文件夹下新建一个request.js文件,代码如下:

import axios from 'axios'

export default function request(method, url, data={}) {
  return axios({
    method: method,
    url: url,
    data: method === 'POST' || method === 'PUT' ? data : null,
    params: method === 'GET' || method === 'DELETE' ? data : null,
    baseURL: 'http://localhost:3000',
    timeout: 10000,
    headers: {
      'Content-Type': 'application/json;charset=UTF-8'
    }
  }).then((res) => {
    return res.data;
  }).catch((err) => {
    console.log(err)
  })
}

2.2 使用Axios的拦截器

在src文件夹下,新建一个http.js文件,代码如下:

import axios from 'axios'

axios.defaults.baseURL = 'http://localhost:3000';

axios.interceptors.request.use(config => {
  console.log(config);

  config.headers['X-Token'] = '123456';

  return config;
}, error => {
  return Promise.reject(error);
});

axios.interceptors.response.use(response => {
  console.log(response);

  return response.data;
}, error => {
  console.log(error);

  return Promise.reject(error);
});

2.3 使用Axios的Create创建实例

在src文件夹下,新建一个api.js文件,代码如下:

import axios from 'axios'

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

instance.interceptors.request.use(config => {
  console.log(config);

  config.headers['X-Token'] = '123456';

  return config;
}, error => {
  return Promise.reject(error);
});

instance.interceptors.response.use(response => {
  console.log(response);

  return response.data;
}, error => {
  console.log(error);

  return Promise.reject(error);
});

export default instance

3. 调用Axios封装请求

在Vue项目中的<script>标签中引入封装好的请求方法,然后调用即可。

import request from './utils/request.js'

request('GET', '/user/list').then((res) => {
  console.log(res)
})
import api from './api.js'

api.get('/user/list').then((res) => {
  console.log(res)
})

4. 示例说明

4.1 示例一

在utils文件夹下新建一个用户请求的API,代码如下:

import request from './request.js'

export const getUserList = (params) => {
  return request('GET', '/user/list', params)
}

export const addUser = (params) => {
  return request('POST', '/user/add', params)
}

export const editUser = (params) => {
  return request('PUT', '/user/edit', params)
}

export const deleteUser = (params) => {
  return request('DELETE', '/user/delete', params)
}

在Vue的组件中引入并调用API:

import { getUserList } from '@/utils/user.js'

export default {
  data() {
    return {
      userList: []
    }
  },

  created() {
    this.init()
  },

  methods: {
    init() {
      getUserList({}).then((res) => {
        this.userList = res;
      })
    }
  }
}

4.2 示例二

在api.js文件中,定义用户请求的API,代码如下:

import instance from './api.js'

export const getUserList = (params) => {
  return instance.get('/user/list', { params })
}

export const addUser = (params) => {
  return instance.post('/user/add', params)
}

export const editUser = (params) => {
  return instance.put('/user/edit', params)
}

export const deleteUser = (params) => {
  return instance.delete(`/user/delete/${params.id}`)
}

在Vue的组件中引入并调用API:

import { getUserList } from '@/api.js'

export default {
  data() {
    return {
      userList: []
    }
  },

  created() {
    this.init()
  },

  methods: {
    init() {
      getUserList({}).then((res) => {
        this.userList = res;
      })
    }
  }
}

以上就是Vue项目中Axios的封装请求的完整攻略。

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

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

相关文章

  • 关于nginx的return配置小技巧

    以下是关于nginx的return配置小技巧的完整攻略。 1. return配置 在nginx中,return指令用于立即止处理当前请求,并返回指定响应码和响应体。return指令的语法如下: return code [text]; 其中,code表示响应码,text表示响应体。如果不指定响应体,则默认为空。 2. 示例说明 以下是两个使用return指令的…

    other 2023年5月7日
    00
  • Oracle数据库表的备份和数据表的删除操作

    Oracle数据库表的备份和数据表的删除操作的完整攻略 Oracle数据库是一种常用的关系型数据库,备份和删除数据表是数据库管理中常见的操作。本文将详细讲解Oracle数据库表的备份和数据表的删除操作的完整攻略,包括两个示例说明。 Oracle数据库表的备份 Oracle数据库表的备份是指将数据库表的数据备份到另一个位置,以便在需要时恢复数据。以下是Orac…

    other 2023年5月5日
    00
  • python清空指定文件夹下所有文件的方法

    以下是关于Python清空指定文件夹下所有文件的方法的完整攻略,包括定义、方法、示例说明和注意事项。 定义 Python清空指定文件下所有文件的方法是指通过Python编程语言实现指定文件夹下所有文件的操作。这个方法可以帮助我们快速清空指文件夹下的所有文件,以便我们可以重新使用该。 方法 以下是Python清空指定文件夹下所有文件的方法: import os…

    other 2023年5月8日
    00
  • Android Activity的生命周期与启动模式全面解读

    那我就为您详细讲解一下“Android Activity的生命周期与启动模式全面解读”的完整攻略。 概述 Android中的Activity生命周期是指从Activity创建,到销毁的整个完整过程,它是整个Android程序设计中最基本的组成元素之一。这个过程对于开发Android应用程序的开发者来说是至关重要的,并且在设计和调试Android应用程序时必须…

    other 2023年6月27日
    00
  • Windows 10Build 10240已开发完成 最后的正式发布版

    Windows 10 Build 10240 完成开发攻略 Windows 10 Build 10240 是 Windows 10 的最终正式发布版。本攻略将详细介绍如何完成该版本的开发过程,并提供两个示例说明。 步骤一:准备开发环境 在开始开发之前,确保你已经准备好以下开发环境: 一台运行 Windows 操作系统的计算机 安装了最新的 Windows 1…

    other 2023年8月5日
    00
  • otsu(大津法 最大类间方差法)

    Otsu算法,也称为大津法或最大类间方差法,是一种用于图像分割的算法。它可以自动确定一个阈值,将图像分成两个部分:前景和背景。下面是一个完整攻略,包含两个示例说明。 算法原理 Otsu算法的核心思想是最大化类间方差。类间方差是指前景和背景之间的差异程度,它可以用来衡量图像分割的质量。具体来说,Otsu算法通过遍历所有可能的阈值,计算每个阈值对应的类间方差,然…

    other 2023年5月8日
    00
  • gorm操作MySql数据库的方法

    GORM操作MySQL数据库的方法攻略 GORM是一个Go语言的ORM(对象关系映射)库,它提供了一种简单而强大的方式来操作MySQL数据库。下面是使用GORM进行MySQL数据库操作的完整攻略。 步骤一:安装GORM和MySQL驱动 首先,你需要安装GORM和MySQL驱动。可以使用以下命令来安装它们: go get -u gorm.io/gorm go …

    other 2023年8月18日
    00
  • XMind思维导图怎么设置主题优先级?

    XMind思维导图设置主题优先级攻略 1. 确定主题优先级的重要性 在进行主题优先级设置之前,首先需要明确主题优先级对你的思维导图的重要性。不同的主题可能具有不同的重要性,因此根据你的需求和目标来决定主题优先级的设置。 2. 使用主题优先级符号 使用XMind思维导图软件提供的主题优先级符号来设置主题的优先级。主题优先级符号可以使用不同的图标或颜色来表示主题…

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