axios、axios二次封装、api解耦

ops/2025/2/26 13:22:54/

本文章主要讲解项目中axios的封装问题,这一块知识点是必须拿下的。

目录

一、axios基础使用

1、下载axios

2、引入axios

3、使用axios发送请求

4、举例 

二、axios二次封装【必须掌握,公司里必用到】

1、为什么要进行二次封装?

2、二次封装步骤

①新建文件request/request.js

②编写js代码

3、使用二次封装发送axios请求

4、注意

三、api解耦

1、什么是api解耦?

2、api解耦步骤

①新建文件api/xxx.js

②编写代码

③使用api

3、api解耦的重要性

结语


一、axios基础使用

1、下载axios

npm install axios

2、引入axios

import axios from 'axios'

3、使用axios发送请求

4、举例 

生成情话的后端接口https://api.xygeng.cn/one

我们使用axios往这个接口发送请求,就会获得一句情话。

javascript">//引入axios
import axios from 'axios'
//使用axios发送请求到后端接口,并获取返回的数据
axios({url:"https://api.xygeng.cn/one",method:"get"
}).then(res=>{//res:后端返回给前端的数据console.log(res.data.data);//res.data.data是里面的那句情话
})

运行结果:

二、axios二次封装【必须掌握,公司里必用到】

1、为什么要进行二次封装?

        因为上面的那个接口https://api.xygeng.cn/one 的公共部分是https://api.xygeng.cn,也就是说前端项目的其他地方发送的axios请求,也会包含这个公共部分,因此需要提取出来。

        如果不提取出来,可以想象一下,我们有几百个地方发送的axios都包含了这个公共部分https://api.xygeng.cn,如果哪天我们的后端服务器换了,我们就需要手动改几百处,实在是太麻烦。

        综上,我们要进行axios的二次封装,即:将axios请求的url的公共部分提取出来。

2、二次封装步骤

①新建文件request/request.js

②编写js代码

javascript">//1、导入axios
import axios from 'axios'//2、创建axios对象
const service = axios.create({//axios请求的基础链接,只有换后端服务器时(如本地项目部署到云服务器),才会改动这个baseURL:'https://api.xygeng.cn'});//3、给axios对象,设置【请求拦截器】,前端每次给后端发送数据时要做的事
service.interceptors.request.use(config => {return config;
},error => {Promise.reject(error);
})//4、给axios对象,设置【响应拦截器】,后端响应给前端数据时要做的事
service.interceptors.response.use((response) => {return response.data;},error => {return Promise.reject(new Error(error.response.data))}
)//5、暴露axios对象service
export default service

请求拦截器:常常每个axios请求url前,都会携带token。
响应拦截器:常用来判断code码。 

3、使用二次封装发送axios请求

javascript">//导入刚才封装的axios对象
import request from '@/request/request'//使用axios对象发送请求
request({url:"/one",//此时URL公共前缀就不用写了//method:"get"
}).then(res=>{console.log(res.data);//此时res.data就是那句情话
})

查看运行结果

4、注意

理解:

那句情话始终都是【后端返回数据.data.data】,就看上图中的res和response怎么倒腾了。

而且此时response.data充当res。

如果响应拦截器中,return的是response的话,那么response就充当res。说白了就是return的是啥,啥就充当res。

比喻:

就是将js代码,写入了那个总的js文件中。说白了就是将碗里的米饭,放回锅里了,但是无论如何,我都吃锅+碗的,所以总数不变,功能不变。 

三、api解耦

1、什么是api解耦?

        我们很多地方可能都要发送同一个axios请求,此时我们总不能每次都重复写一遍代码吧,因此需要将某个请求提取到一个js文件中。

2、api解耦步骤

①新建文件api/xxx.js

②编写代码

javascript">import request from '@/request/request'//编写方法“获取情话”,并将其暴露出去
export function getQinghua(){return request({url:'/one'})/* 或者写成return request.get('/one')*/
}//如果想编写其他方法,可以同上,继续暴露出去。

③使用api

javascript">//导入自定义api
import { getQinghua } from "@/api/qinghua";
//使用api发送请求
getQinghua().then(res=>{console.log(res.data);//此时这还是那句情话
})

运行效果:

3、api解耦的重要性

以后项目中,肯定需要往后端发送一大堆axios请求,我们此时可以把这些axios请求写成一个个api,并按照一定规律存放在不同的js文件中即可。 

结语

以上就是axios、axios二次封装、api解耦的全部内容,介绍的比较详细,喜欢的话留下一个关注吧~~


http://www.ppmy.cn/ops/161420.html

相关文章

AR技术下的电商:虚拟试穿/试用/试戴成新风尚

随着科技的日新月异,增强现实(AR)技术正悄然改变着我们的生活,尤其在电子商务领域,AR技术的融入正掀起一场前所未有的变革。那么,AR技术究竟是何方神圣?它在电商领域又展现出了哪些非凡的应用呢…

Tesseract OCR:起源、发展与完整使用指南

引言 光学字符识别(OCR,Optical Character Recognition)技术的目标是将印刷体或手写体文字从图像或扫描文档中提取出来,使其变成计算机可编辑的文本。OCR技术在文档自动化、书籍数字化、车牌识别、票据处理等领域得到了广泛应用。…

【qt计算器】

qt计算器 目录注释部分模块配置目标配置模板配置源文件配置头文件配置UI 文件配置1. 头文件保护宏2. 包含必要的头文件3. 命名空间声明4. 类的定义5. 构造函数和析构函数6. 私有槽函数7. 私有成员变量8. 头文件保护宏结束1. 包含头文件2. 构造函数 MainWindow::MainWindow(QWid…

python爬虫学习第十一篇爬取指定类型数据

最近在学习Python爬虫的过程中,尝试用爬虫获取指定类型的数据。今天,我想和大家分享一下我的实践过程和遇到的问题。 一、实现目标 目标是从一个网站的API接口获取不同类型的食品数据。 比如,第一步我想获取汉堡、小食、甜品等不同类型的数…

R Excel 文件:高效数据处理的利器

R Excel 文件:高效数据处理的利器 在数据分析领域,R语言因其强大的统计分析和可视化功能而备受推崇。而R Excel文件,作为R语言与Excel的桥梁,使得数据在R和Excel之间的高效转换成为可能。本文将详细介绍R Excel文件的概念、应用场景以及操作方法。 一、R Excel文件的概念…

Spring源码分析の循环依赖

文章目录 前言一、循环依赖问题二、循环依赖的解决三、整体流程分析 前言 常见的可能存在循环依赖的情况如下: 两个bean中互相持有对方作为自己的属性。   类似于: 两个bean中互相持有对方作为自己的属性,且在构造时就需要传入&#xff1a…

百度首页上线 DeepSeek 入口,免费使用

大家好,我是小悟。 百度首页正式上线了 DeepSeek 入口,这一重磅消息瞬间在技术圈掀起了惊涛骇浪,各大平台都被刷爆了屏。 百度这次可太给力了,PC 端开放仅 1 小时,就有超千万人涌入体验。这速度,简直比火…

MobSF(Mobile Security Framework) 的详细介绍、安装指南、配置说明

MobSF:移动应用安全分析的全能框架 一、MobSF 简介 MobSF 是一款开源的 移动应用安全测试框架,专为 Android 和 iOS 应用设计。它集成了静态代码分析、动态调试、恶意软件检测、网络流量分析等功能,适用于渗透测试、漏洞挖掘和安全合规审计…