在VUE项目中做一个简单的Axios二次封装及使用

简介: 在VUE项目中做一个简单的Axios二次封装及使用


一小池勺❤️❤️❤️ ❤️❤️❤️❤️胸有惊雷而面如平湖者,可拜上将军也。


前言

Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。

传送门

封装

首先我确定一个封装的位置

utils / request.js

然后我们看到文档,我们可以自定义配置一个 axios 的实例 axios.create(【config】),该新建的 axios 可以使用其对应的方法。这个也就是叫做 axios 的二次封装了,可以方便我们在页面发起请求,更为方便地管理我们的网络请求模块。

如下是我的具体的封装代码

// 引入
import axios from 'axios'
// 创建实例
const RMhttp = axios.create({
   baseUrl: "http://localhost:8080", // 基地址
   timeout: 5000 // 超时时间
})
export default RMhttp // 将该实例对外暴露

然后我开始配置拦截器

// 引入
import axios from 'axios'
// 创建实例
const RMhttp = axios.create({
   baseUrl: "http://localhost:8080", // 基地址
   timeout: 5000 // 超时时间
})
// 配置拦截器
// 添加请求拦截器
axios.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    return config;
  }, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
  });
// 添加响应拦截器
axios.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    return response;
  }, function (error) {
    // 对响应错误做点什么
    return Promise.reject(error);
  });
export default RMhttp // 将该实例对外暴露

这样就完成了一个很简单的封装,接下来使用该实例,我新建了一个文件夹来管理我的网络请求api的接口

// 导入实例
import RMhttp from '../utils/request.js'
// 封装请求接口
export const getUserInfo = () => {
  // 这里会返回一个promise对象
  return RMhttp.get('/user/getUserInfo')
}

这样我在其它页面中使用起来就十分方便了,因为其返回的是一个 Promise

async fetchUserInfo() {
  const res = await getUserInfo()
  this.data.userInfo = res.data
}

结语

今天是考研的第一天,希望电子科技小组的学长学姐都顺顺利利❤️

目录
相关文章
|
1月前
|
资源调度 JavaScript 前端开发
vue-element-admin 综合开发四:axios安装和封装、mock安装/学习/使用
这篇文章是关于如何在Vue项目中使用axios进行网络请求、二次封装axios以及使用mockjs模拟响应数据的教程。
77 1
vue-element-admin 综合开发四:axios安装和封装、mock安装/学习/使用
|
1月前
vue3+Ts 二次封装ElementUI form表单
【10月更文挑战第8天】
190 59
|
1月前
|
缓存 JavaScript 搜索推荐
|
18天前
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
40 2
|
1月前
|
前端开发 JavaScript 安全
在vue前端开发中基于refreshToken和axios拦截器实现token的无感刷新
在vue前端开发中基于refreshToken和axios拦截器实现token的无感刷新
88 4
|
1月前
|
Web App开发 JavaScript 数据可视化
vue3扩展echart封装为组件库-快速复用
vue3扩展echart封装为组件库-快速复用
123 7
|
1月前
vue3 + Ts 中 使用 class 封装 axios
【10月更文挑战第8天】
108 1
|
1月前
vue3 + Ts 中 使用 class 封装 axios
【10月更文挑战第5天】
131 1
|
28天前
|
JavaScript 前端开发 Java
vue2知识点:Vue封装的过度与动画
vue2知识点:Vue封装的过度与动画
14 0
|
1月前
|
前端开发 JavaScript API
自己动手封装axios通用方法并上传至私有npm仓库:详细步骤与实现指南
自己动手封装axios通用方法并上传至私有npm仓库:详细步骤与实现指南
73 0