vue项目中axios的封装请求

下面我将详细讲解“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日

相关文章

  • linux(centos)安装minio 详细教程 附防火墙端口开放操作

    Linux(CentOS)安装Minio 详细教程 附防火墙端口开放操作 Minio是一个开源的对象存储服务器,兼容 Amazon S3 API。它可以在Linux、Mac OS X和Windows等多个平台上运行。本文将介绍在Linux(CentOS)中安装Minio的详细步骤,并且提供相应的防火墙端口开放操作说明。 安装Minio 步骤1:下载Minio…

    其他 2023年3月28日
    00
  • 企业红帽Linux7的10个特性分析

    企业红帽Linux7的10个特性分析 1. 改进的内核性能与稳定性 企业红帽Linux 7采用了Linux 3.10内核,通过减少不必要的系统调用等方式来提高系统性能。此外,还对CPU、内存等方面进行了优化,极大地提高了系统的稳定性和响应速度。例如,可以通过以下命令查看CPU信息: $ cat /proc/cpuinfo 2. 灵活的文件系统选项 企业红帽L…

    other 2023年6月28日
    00
  • apkmirror官网入口

    APKMirror 可能是最好的 Android APK 下载网站。 该网站由创建Android新闻网站 Android Police 的团队拥有和运营,安全性和稳定性得以保障。 从安全的角度来看,APKMirror 有一些强大的策略: 工作人员在发布前验证上传到网站的所有 APK; 该网站将新版本应用程序的加密签名与以前的版本进行匹配(以确保真正的开发人员…

    2023年4月16日
    00
  • php使用递归函数实现数字累加的方法

    接下来我将详细讲解使用递归函数实现数字累加的方法。 1. 什么是递归函数 递归是指函数调用自身的一种方法,是解决问题的一种常用方法。在递归过程中,系统自动维护一个栈,用于存储每一层递归调用时的相关信息。 下面是一个简单的递归例子: function recursion($n){ if($n<=1){ return $n; } return $n + r…

    other 2023年6月27日
    00
  • WinXP内存优化教程(可提供系统运行速度)

    WinXP内存优化教程 在这个教程中,我将向您介绍一些优化Windows XP系统内存的方法,以提高系统的运行速度。以下是详细的步骤: 步骤一:禁用不必要的启动项 打开任务管理器:按下Ctrl + Shift + Esc键,或者右键点击任务栏并选择“任务管理器”。 切换到“启动”选项卡。 禁用不必要的启动项:右键点击不需要的启动项,并选择“禁用”。 示例说明…

    other 2023年8月2日
    00
  • 收藏的迅雷下载图文教程

    收藏的迅雷下载图文教程 介绍 迅雷是一款常用的下载工具,它提供了丰富的功能和便捷的操作界面。本教程将详细介绍如何使用迅雷进行下载,并展示如何收藏下载链接。 步骤 步骤一:下载和安装迅雷 首先,你需要下载并安装迅雷软件。你可以在迅雷官方网站(www.xunlei.com)上找到最新版本的迅雷软件,并按照提示进行安装。 步骤二:打开迅雷软件 安装完成后,双击桌面…

    other 2023年8月4日
    00
  • Sublime 编辑器主题

    Sublime Text是一款流行的文本编辑器,它支持自定义主题,可以让用户根据自己的喜好来设置编辑器的外观。下面是Sublime编辑器主题的完整攻略,包括安装、使用和自定义主题等方面的内容。 安装主题 Sublime Text支持通过Package Control插件来安装主题。要安装主题,请按照以下步骤操作: 打开Sublime Text编辑器,按下“C…

    other 2023年5月5日
    00
  • Java 死锁解决方案顺序锁和轮询锁

    Java 死锁是指在多线程程序中,两个或多个线程被永久性的阻塞,等待彼此所占用的资源被释放。例如:线程 A 持有锁 1,需要获取锁 2。而线程 B 正在持有锁 2,需要获取锁 1。此时,A 和 B 互相等待对方释放资源,从而形成死锁。 解决 Java 死锁问题的方案有很多,其中顺序锁和轮询锁是两种比较常见的方法,下面就来详细介绍这两种锁的用法和实现。 顺序锁…

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