VUE3中,使用Axios

news2025/1/16 1:35:26

axios是前后端数据交互的重要桥梁,理论和概念这里不再叙述了。可以看看官网。

axios中文文档|axios中文网 | axios

本例子,从简单到难。

目录

一、简单的使用

二、查询数据时出现等待窗体


一、简单的使用

1.废话少说,先使用HBuilder X建立一个能运行的项目

2.安装axios

使用如下命令安装

npm install axios

安装成功后

  

3. 建立文件夹和文件,如图所示

4.demoAxios.js中的代码,其他的选项可以自己增加

import axios from 'axios'
//export将service传出去
export const service = axios.create({
	baseURL: 'https://localhost:5001/api'
	//baseURL: import.meta.env.VITE_BASE_URL, //这里也可以使用变量
	//timeout: 30000,//超时设置
	//withCredentials: true, //异步请求携带cookie
	//headers: {
	// 		//设置后端需要的传参类型
	// 		'Content-Type': 'application/json;charset=UTF-8;',
	// 		//'token': 'your token',
	// 		'X-Requested-With': 'XMLHttpRequest'
	// 	}
})

5.使用

在vue界面中,先导入,然后直接写api地址,其中api已经写好了。

HelloWorld.vue代码,其中没用的代码已经删除了

<script setup>
	import {
		ref,
		onMounted
	} from 'vue'
	import {
		service
	} from "/store/demoAxios.js"

	let user = ref("admin")
	let passWord = ref("123456")
	const Login = async () => {
		await service.get(`User/Login?userName=${user.value}&passWord=${passWord.value}`).then(
			res => {
				if (res.status == 200) {
					console.log(res.data)
				} else {
					ElMessage.error('账号或者密码错误!!')
				}
			})
	}

	//初始化后执行
	onMounted(() => {
		Login()
	})
</script>

<template>

</template>

<style scoped>
	a {
		color: #42b983;
	}
</style>

6.运行后,效果

至此,简单的使用就完成了。 

二、查询数据时出现等待窗体

1.封装的时候,只需要更改demoAxios.js文件即可。

并且使用了element-plus,所以要先进行安装element-plus,安装步骤不再叙述了。

安装完成后,直接导入,然后调用。

注释已经写的很清晰了,可以看注释

demoAxios.js代码

import axios from 'axios'
import {
	ElLoading
} from 'element-plus'



//export将service传出去
export const service = axios.create({
	baseURL: 'https://localhost:5001/api'
	//baseURL: import.meta.env.VITE_BASE_URL, //这里也可以使用变量
	//timeout: 30000,//超时设置
	//withCredentials: true, //异步请求携带cookie
	//headers: {
	// 		//设置后端需要的传参类型
	// 		'Content-Type': 'application/json;charset=UTF-8;',
	// 		//'token': 'your token',
	// 		'X-Requested-With': 'XMLHttpRequest'
	// 	}
})


//下面有2种写法,一种是声明函数的写法,一种是箭头函数的写法,都可以

//request interceptor  请求拦截器
service.interceptors.request.use(
	function(config) {
		// 在发送请求之前做些什么
		console.log(config)
		console.log('这里是请求前')
		//这里是使用了element-plus,进行模态化窗体,也就是等待查询的意思,本案例在api中,设置了等待时间
		ElLoading.service({
			lock: true,
			text: 'Loading...',
			background: 'rgba(0, 0, 0, 0.7)', //灰色,删除就是白色的
		})

		return config
	},
	function(error) {
		// 对请求错误做些什么
		console.log(error)
		console.log('这里是请求错误')

		return Promise.reject(error)
	}
)


//响应拦截器
service.interceptors.response.use(
	res => {
		// 在请求成功后的数据处理
		if (res.status === 200) {
			console.log(res.status)
			console.log('这里是请求成功后')
			//查询成功,关闭模态化窗体
			ElLoading.service().close()

			return res;
		} else {
			console.log(res.status)
			console.log('这里是请求失败后')
			ElLoading.service().close()

			return res;
		}

	},
	err => {
		// 在响应错误的时候的逻辑处理
		console.log('这里是响应错误')

		return Promise.reject(err)
	});

2.效果

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

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

相关文章

【测试】软件测试基本概念

努力经营当下&#xff0c;直至未来明朗&#xff01; 文章目录1. 什么是需求2.什么是测试用例&#xff1f;3. 软件错误Bug的概念:sparkles:小结普通小孩也要热爱生活&#xff01; 1. 什么是需求 【注】一旦提及“区别”&#xff0c;一定要回答 相同点不同点。 在企业中&#x…

算法刷题打卡第57天:合并两个有序链表

合并两个有序链表 难度&#xff1a;简单 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4]示例 2&#xff1a; 输入&#x…

liunx中搭建python3.7环境和安装pycharm并搭建Django

首先第一步我们先安装python3.7的环境在liunx中&#xff0c;先去下面这个网站然后找到Gzipped source tarball https://www.python.org/downloads/release/python-377/ 下拉到最底下选择它然后下载 如果python中已经安装就跳过这一步 用python --version 检查后如果已经装好pyt…

【2022年终总结】期待下一个365天

2022结束啦&#xff01;&#xff01;&#xff01;日出万物生&#xff0c;日落满天星&#xff0c;期待下一个365天&#xff01;&#xff01;&#xff01; 不知不觉在CSDN断断续续写文章已经四个月了&#xff0c;回想这段日子&#xff0c;还是很有必要纪念一下的&#xff0c;本期…

ArcGIS基础实验操作100例--实验61数据框投影变换

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台&#xff1a;ArcGIS 10.6 实验数据&#xff1a;请访问实验1&#xff08;传送门&#xff09; 高级编辑篇--实验61 数据框投影变换 目录 一、实验背景 二、实验数据 三、实验步骤 &#xff08;1&am…

JavaScript 模块化 —— 从概念到原理

走过路过发现 bug 请指出&#xff0c;拯救一个辣鸡&#xff08;但很帅&#xff09;的少年就靠您啦&#xff01;&#xff01;&#xff01; 1. 为什么需要 Javascipt 模块化&#xff1f; 1.解决命名冲突。将所有变量都挂载在到全局 global 会引用命名冲突的问题。模块化可以把变…

人工智能与python

人工智能的话题在近几年可谓是相当火热&#xff0c;前几天看快本时其中有一个环节就是关于人工智能的&#xff0c;智能家电、智能机器人、智能工具等等&#xff0c;在我的印象里&#xff0c;提到人工智能就会出现 Python&#xff0c;然后我便在网上查找了相关信息&#xff0c;并…

(第三章)OpenGL超级宝典学习:认识渲染管线

OpGL超级宝典学习&#xff1a;认识渲染管线 前言 本章作为OpenGL学习的第三章节 在本章节我们将认识OpenGL的渲染管线 对管线内各个过程有一个初步的认识 ★提高阅读体验★ &#x1f449; ♠一级标题 &#x1f448; &#x1f449; ♥二级标题 &#x1f448; &#x1…

【KG】TransE 及其实现

原文&#xff1a;https://yubincloud.github.io/notebook/pages/paper/kg/TransE/ TransE 及其实现 1. What is TransE? TransE (Translating Embedding), an energy-based model for learning low-dimensional embeddings of entities. 核心思想&#xff1a;将 relationship …

基于R的Bilibili视频数据建模及分析——建模-因子分析篇

基于R的Bilibili视频数据建模及分析——建模-因子分析篇 文章目录基于R的Bilibili视频数据建模及分析——建模-因子分析篇0、写在前面1、数据分析1.1 建模-因子分析1.2 对数线性模型1.3 主成分分析1.4 因子分析1.5 多维标度法2、参考资料0、写在前面 实验环境 Python版本&#…

防火墙命令

启动&#xff1a; systemctl start firewalld 查看状态&#xff1a; systemctl status firewalld 停止&#xff1a;systemctl stop firewalld 禁用&#xff1a;systemctl disable firewalld 怎么开启一个端口呢 添加 firewall-cmd --zonepublic --add-port80/tcp --permanent …

easyx保姆级教程---->从游戏玩家到游戏制作者

请点击这里&#xff1a;安装教程 1.头文件 #include<easyx.h> //这个是只包含最新的API(函数接口) #include<graphics.h> //这个头文件包含了上面的&#xff0c;还包含了已经不推荐使用的函数2.窗口 1.初始化绘制窗口 initgraph(width,height,flag); //窗…

Domino Web应用中的搜索功能和结果选择问题

大家好&#xff0c;才是真的好。 还有不到十天Domino多瑙河版本就将发布&#xff0c;在此之前&#xff0c;我们还是讲述一下Web中的搜索技术。 废话不多说&#xff0c;我们直接上干货。 Notes应用的视图在Web浏览器中可以直接展现&#xff0c;并且可选择。 如果这样展现的话…

【QGIS入门实战精品教程】8.1:QGIS制作地图案例教程

文章目录 一、加载矢量数据二、加载影像底图三、美化矢量数据四、切换到排版视图五、添加经纬度格网六、添加其他修饰元素七、地图输出一、加载矢量数据 加载本实验数据基础数据.gpkg中的甘肃省政区矢量数据,如下所示: 二、加载影像底图 QGIS加载在线地图案例教程参考: 【…

5、Java中的JDBCJDBCUtilsJDBC控制事务getResource中文或有空格路径处理ResourceBundle演示

JDBC&#xff1a; 1. 概念&#xff1a;Java DataBase Connectivity Java 数据库连接&#xff0c; Java语言操作数据库 * JDBC本质&#xff1a;其实是官方&#xff08;sun公司&#xff09;定义的一套操作所有关系型数据库的规则&#xff0c;即接口。各个数据库厂商去实现这…

回收租赁商城系统功能拆解04讲-商品品牌

回收租赁系统适用于物品回收、物品租赁、二手买卖交易等三大场景。 可以快速帮助企业搭建类似闲鱼回收/爱回收/爱租机/人人租等回收租赁商城。 回收租赁系统支持智能评估回收价格&#xff0c;后台调整最终回收价&#xff0c;用户同意回收后系统即刻放款&#xff0c;用户微信零…

第04章 程序控制结构

在程序中&#xff0c;程序运行的流程控制决定程序是如何执行的。 顺序控制 介绍&#xff1a; 程序从上到下的逐行的执行&#xff0c;中间没有任何判断和跳转。 使用&#xff1a;java中定义变量时&#xff0c;采用合法的前向引用。如&#xff1a; public class Test{int num…

【虚幻引擎】UE4/UE5像素流在广域网上(云)部署(多实例)

一、选择云服务器 每个云平台都提供许多预设的镜像选择&#xff0c;由于像素流技术目前只支持Windows操作系统&#xff0c;所以我们需要选择Windows Server的镜像&#xff0c;2012/2016/2019皆可。我们这里选择了Windows Server 2016 R2 简体中文版的镜像&#xff0c;之所以选择…

【SSM整合】对Spring、SpringMVC、MyBatis的整合,以及Bootstrap的使用,简单的新闻管理系统

✅作者简介&#xff1a;热爱Java后端开发的一名学习者&#xff0c;大家可以跟我一起讨论各种问题喔。 &#x1f34e;个人主页&#xff1a;Hhzzy99 &#x1f34a;个人信条&#xff1a;坚持就是胜利&#xff01; &#x1f49e;当前专栏&#xff1a;【Spring】 &#x1f96d;本文内…

代码随想录第53天|● 1143.最长公共子序列 ● 1035.不相交的线 ● 53. 最大子序和 动态规划

1143.最长公共子序列 和718.最长重复子数组类似 包括二维数组初始化这些 不同之处在于递推公式主要就是两大情况&#xff1a; text1[i - 1] 与 text2[j - 1]相同&#xff0c;text1[i - 1] 与 text2[j - 1]不相同 如果text1[i - 1] 与 text2[j - 1]相同&#xff0c;那么找到了…