【vue2.7.16系列】手把手教你搭建后台系统__封装工具库(4)

封装 axios 模块

使用axios发起一个请求是比较简单的事情,但是axios没有进行封装复用,项目越来越大,会引起越来越多的代码冗余,让代码变得越来越难维护。
所以我们在这里先对 axios 进行二次封装,使项目中各个组件能够复用请求,让代码变得更容易维护。

封装要点

  • 统一 url 配置
  • 统一 api 请求
  • request (请求) 拦截器,例如:带上token等,设置请求头
  • response (响应) 拦截器,例如:统一错误处理,页面重定向等
  • 根据需要,结合 Vuex 做全局的 loading 动画,或者错误处理
    将 axios 封装成 Vue 插件使用

在 src 目录下,新建一个 utils 文件夹,用来存放 工具库 代码。新建一个 api 文件夹,用来管理接口。

utils目录下,新建request.js文件用来封装axios

// 导入axios库
import axios from 'axios';// 创建一个新的axios实例
const instance = axios.create({// 设置默认的基础URLbaseURL: 'https://api.example.com',timeout: 5000,
});// 拦截请求
instance.interceptors.request.use(// 在发送请求之前做些什么,例如添加token到请求头中config => {config.headers.Authorization = `Bearer ${localStorage.getItem('token')}`;return config;},// 对请求错误做些什么error => {return Promise.reject(error);}
);// 拦截响应
instance.interceptors.response.use(// 对响应数据做点什么response => {return response;},// 对响应错误做点什么error => {if (error.response.status === 401) {// 例如,如果响应状态码为401,跳转到登录页面window.location.href = '/login';}return Promise.reject(error);}
);// 导出封装后的axios实例
export default instance;

未完…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1559152.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】基本认知全套入门

目录 Linux简介 Linux发行版本 发行版选择建议 Centos-社区企业操作系统 Centos版本选择 Linux系统目录 Linux常用命令 SSH客户端 Linux文件操作命令 vim重要快捷键 应用下载与安装 netstat,ps与kill命令使用 Linux应用服务化 Linux用户与权限 Linu…

Telephony CarrierConfig配置

1、CarrierConfig配置介绍 CarrierConfig(运营商配置),是Android为了针对不同运营商配置不同功能的配置文件,类似Modem的MBN配置,可以实现插入不同运营商卡,不同的功能实现或菜单显示等。 2、CarrierConfig…

力扣之1355.活动参与者

题目: Sql 测试用例: Create table If Not Exists Friends (id int, name varchar(30), activity varchar(30)); Create table If Not Exists Activities (id int, name varchar(30)); Truncate table Friends; insert into Friends (id, name, acti…

【数据结构与算法-高阶】并查集

【数据结构与算法-高阶】并查集 🥕个人主页:开敲🍉 🔥所属专栏:数据结构与算法🍅 🌼文章目录🌼 1. 并查集原理 2. 并查集实现 3. 并查集应用 1. 并查集原理 在一些应用问题中&…

charAt,chartCodeAt,codePointAt,fromCodePoint,fromCharCode

生僻字的length算2,有些空格是特殊空格,比如\u3000 u3000不是全角空格,u3000是表意字空格(Ideographic Space),宽度和一个表意字(汉字)相同。它应当被当做汉字来处理。比如,在一些排版中&#x…

OpenSource - License 开源项目 TrueLicense

文章目录 官网集成Demo 官网 https://truelicense.namespace.global/ https://github.com/christian-schlichtherle/truelicense 集成Demo https://github.com/christian-schlichtherle/truelicense-maven-archetype https://github.com/zifangsky/LicenseDemo https://git…

map和set(c++)

前言 在前面我们在介绍二叉搜索树时我们分别实现了一个key结构和key-val结构,如果我们再进一步完善这棵树,将二叉搜索树升级为红黑树去存储key和key-val那么我们就可以得到我们今天要介绍的主角map和set。当然了标准库的实现还是有很多需要注意的地方&a…

植物大战僵尸修改器-MFC

创建项目 创建mfc应用 基于对话框 打开资源视图下的 IDD_MFCAPPLICTION2_DIALOG 限制对话框大小 将属性中Border的值改为对话框外框 删除对话框中原有的控件 属性-外观-Caption 设置对话框标题 工具箱中拖放一个按钮 修改按钮名称 将按钮ID改为IDC_COURSE 在MFCApplication2…

k8s微服务

一 、什么是微服务 用控制器来完成集群的工作负载,那么应用如何暴漏出去?需要通过微服务暴漏出去后才能被访问 Service是一组提供相同服务的Pod对外开放的接口。 借助Service,应用可以实现服务发现和负载均衡。 service默认只支持4层负载均…

QT安装成功后-在创建项目时,发现仅有项目名文件

(1)QT安装成功后,发现仅有项目名文件其他可编辑文件缺失 (2)点击文件名左上角的感叹号显示【No kits are enabled for this project. Enable】 小编在尝试多次后发现,可以通过以下方式解决:QT软…

接着上一篇stp 实验继续

理论看上一篇,我们直接实验 首先找出root 桥 很明显 sw1 为root 桥,所谓sw1  &a…

从Hinton获得今年的诺贝尔物理学奖说起

“深度人工智能”是成都深度智谷科技旗下的人工智能教育机构订阅号,主要分享人工智能的基础知识、技术发展、学习经验等。此外,订阅号还为大家提供了人工智能的培训学习服务和人工智能证书的报考服务,欢迎大家前来咨询,实现自己的…

JavaSE——集合1:Collection接口(Iterator和增强for遍历集合)

目录 一、集合框架体系(重要) 二、集合引入 (一)集合的理解与好处 三、Collection接口 (一)Collection接口实现类的特点 (二)Collection接口常用方法 (三)Collection接口遍历元素的方式(Iterator和增强for) 1.使用Iterator(迭代器) 1.1Iterator(迭代器)介绍 1.2Itera…

OmniH2O——通用灵巧且可全身远程操作并学习的人形机器人(其前身H2O是HumanPlus的重要参考)

前言 由于我司一直在针对各个工厂、公司、客户特定的业务场景,做解决方案或定制开发,所以针对每一个场景,我们都会反复考虑用什么样的机器人做定制开发 于此,便不可避免的追踪国内外最前沿的机器人技术进展,本来准备…

指针函数C++

指针函数概念 指针函数在C中是一种特殊类型的函数。从本质上讲,它是一个函数,不过其返回值是一个指针类型的数据。例如,像int* plusfunction(int a, int b);这样的函数声明,plusfunction就是一个指针函数,它接受两个i…

【学习笔记】Linux系统基础知识4 —— date命令详解

提示:学习Linux系统基础命令 date 命令详解 一、前期准备 1.已经正确安装并成功进入Linux系统 说明:本实验采用的 Redhat 系统(因系统不一致,可能部分显示存在差异) 二、学习内容 1、date命令 1. 功能说明 date …

SpringBoot实现电子文件签字+合同系统

​ 博客主页: 南来_北往 系列专栏:Spring Boot实战 在现代企业中,合同管理和电子文件签字已成为日常运营不可或缺的一部分。为了提升效率和安全性,我们可以使用SpringBoot框架来实现一个电子文件签字和合同管理系统。本文将详细介绍如何…

ITMS-90899: Macs with Apple silicon support issue

文章目录 1.问题2.解决方法2.1 直接忽略这个警告邮件,不会影响app的正常上传2.2 通过在项目的Info.plist文件中加LSMinimumSystemVersion : 12.0 来消除警告 参考链接: 1.问题 ITMS-90899: Macs with Apple silicon support issue - The app isn‘t comp…

机器学习入门(一)

一、机器学习概述 1、人工智能 像人一样智能的综合与分析,机器模拟人类。 是一个系统,像人那样思考,像人那样理性思考。 是一个系统,像人那样活动,像人那样合理的系统 2、机器学习 让机器自动学习,而不…

公司防泄密软件哪个好?6款公司内部文件防泄密软件,2024超好用推荐!

企业的核心机密就如同生命之源,然而,数据泄露的风险也随之而来,让不少企业头疼不已。 面对这一挑战,选择一款高效、可靠的防泄密软件显得尤为重要。 那么,公司防泄密软件哪个好? 接下来,就让我…