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日

相关文章

  • android 获取手机内存及 内存可用空间的方法

    Android 获取手机内存及内存可用空间的方法 在Android开发中,我们可以使用ActivityManager类和MemoryInfo类来获取手机的内存信息,包括总内存和可用内存。 以下是获取手机内存及内存可用空间的方法的完整攻略: 步骤一:导入必要的类和包 首先,在你的Android项目中,确保导入了以下类和包: import android.app…

    other 2023年7月31日
    00
  • 教你三招 让错误的IP地址迅速恢复

    教你三招 让错误的IP地址迅速恢复 如果你遇到了错误的IP地址配置问题,不要担心!下面是三招帮助你迅速恢复正确的IP地址配置的攻略。 1. 检查网络设置 首先,你需要检查你的网络设置,确保没有任何错误的配置。以下是一些常见的检查点: IP地址和子网掩码:确保你的IP地址和子网掩码是正确的。IP地址应该在你网络所在的子网范围内,并且子网掩码应该与你网络的要求相…

    other 2023年7月30日
    00
  • 查看Linux系统是32位还是64位的方法总结

    查看Linux系统是32位还是64位的方法总结 要确定Linux系统是32位还是64位,可以使用以下方法: 方法一:使用命令行查看 打开终端或命令行界面。 输入以下命令并按下回车键: uname -m 系统将返回一个字符串,表示系统的架构。如果返回的是x86_64,则表示系统是64位的;如果返回的是i686或i386,则表示系统是32位的。 示例说明: 输入…

    other 2023年7月28日
    00
  • Bootstrap table两种分页示例

    Bootstrap Table 是基于Bootstrap的一个开源的支持响应式的好用的数据表格插件。 Bootstrap Table有默认的分页功能,用起来也非常方便。但是,有时候默认的分页还不够满足我们的需求,我们需要自定义一些分页功能。下面我们将介绍Bootstrap Table两种分页示例。 示例1:自定义分页 首先,我们需要将Bootstrap Ta…

    other 2023年6月27日
    00
  • Java线程的生命周期命名与获取代码实现

    Java线程的生命周期包括以下状态: 新建状态(New) 就绪状态(Runnable) 运行状态(Running) 阻塞状态(Blocked) 终止状态(Terminated) 获得线程状态的方式: getState()方法:获取当前线程的状态; Thread.State枚举类:提供了表示线程状态的几个枚举类型,可以通过Thread对象的getState()…

    other 2023年6月27日
    00
  • Java程序部署到服务器上,接口请求下载文件失败/文件为空/文件名不对的问题

    部署Java程序到服务器上,接口请求下载文件失败、文件为空或文件名不对的问题,可能是由于以下原因造成的: 1.文件路径问题:在服务器上存储的文件路径与实际请求下载的路径不一致,导致找不到或文件名不对。解决方案是检查文件路径是否正确,并根据需要进行修改。 2.编码问题:在Java程序中,如果涉及到文件名或路径的处理,需要判断其编码方式,避免在不同平台上产生乱码…

    other 2023年6月26日
    00
  • asp.net 动态添加多个用户控件

    ASP.Net中动态添加多个用户控件的过程需要以下步骤: 为用户控件创建一个ASP.Net Web应用程序,并确保已经添加了所需的用户控件。 在Web应用程序的页面代码中,使用LiteralControl对象在页面上动态添加用户控件。LiteralControl是一个空间,它允许您以纯文本方式向页面添加HTML标记和其他内容。 在Page_Load事件中,使…

    other 2023年6月27日
    00
  • mysql判断字段是否存在的方法

    判断 MySQL 数据库中是否存在某个字段,可以采用多种方法。下文将介绍几种判断字段是否存在的方法,并提供相应的示例。 Method 1:使用DESCRIBE语句 DESCRIBE语句可以获取表中所有字段的元数据信息,从中可以判断字段是否存在。使用方法如下: DESCRIBE table_name; 其中,table_name是待检查的表名。如果表中存在字段…

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