在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
}

结语

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

目录
相关文章
|
资源调度 JavaScript 前端开发
vue-element-admin 综合开发四:axios安装和封装、mock安装/学习/使用
这篇文章是关于如何在Vue项目中使用axios进行网络请求、二次封装axios以及使用mockjs模拟响应数据的教程。
454 1
vue-element-admin 综合开发四:axios安装和封装、mock安装/学习/使用
|
5月前
|
JavaScript
Vue中Axios网络请求封装-企业最常用封装模式
本教程介绍如何安装并配置 Axios 实例,包含请求与响应拦截器,实现自动携带 Token、错误提示及登录状态管理,适用于 Vue 项目。
220 1
|
10月前
|
存储 JavaScript 前端开发
基于 ant-design-vue 和 Vue 3 封装的功能强大的表格组件
VTable 是一个基于 ant-design-vue 和 Vue 3 的多功能表格组件,支持列自定义、排序、本地化存储、行选择等功能。它继承了 Ant-Design-Vue Table 的所有特性并加以扩展,提供开箱即用的高性能体验。示例包括基础表格、可选择表格和自定义列渲染等。
863 6
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
257 2
|
前端开发 JavaScript 安全
在vue前端开发中基于refreshToken和axios拦截器实现token的无感刷新
在vue前端开发中基于refreshToken和axios拦截器实现token的无感刷新
1969 4
|
JavaScript 前端开发 Java
SpringBoot项目的html页面使用axios进行get post请求
SpringBoot项目的html页面使用axios进行get post请求
206 0
|
JavaScript 前端开发 Java
vue2知识点:Vue封装的过度与动画
vue2知识点:Vue封装的过度与动画
127 0
|
前端开发 JavaScript API
自己动手封装axios通用方法并上传至私有npm仓库:详细步骤与实现指南
自己动手封装axios通用方法并上传至私有npm仓库:详细步骤与实现指南
545 0
|
5月前
|
JavaScript
Vue中如何实现兄弟组件之间的通信
在Vue中,兄弟组件可通过父组件中转、事件总线、Vuex/Pinia或provide/inject实现通信。小型项目推荐父组件中转或事件总线,大型项目建议使用Pinia等状态管理工具,确保数据流清晰可控,避免内存泄漏。
494 2
|
4月前
|
缓存 JavaScript
vue中的keep-alive问题(2)
vue中的keep-alive问题(2)
412 137