当前位置: 首页 > ai >正文

Vue3中Axios的使用-附完整代码

前言

首先介绍一下什么是axios

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

官方网站:Axios中文文档 | Axios中文网

目前官方最新版本1.8.4


一、Axios优势

1.简单易用

Axios提供了简洁一致的API,使得发送HTTP请求变得非常容易。无论是GET、POST、PUT还是DELETE等请求,都可以通过简洁的语法轻松实现

2.支持Promise

Axios基于Promise实现,使得我们可以使用更加现代化的异步编程方式。通过使用Promise,我们可以更好地处理异步请求,避免回调地狱和代码的混乱。

3.拦截器功能

Axios提供了请求和响应拦截器的功能,可以在请求发送前和响应返回后进行一些额外的处理。这使得我们能够在请求过程中进行一些自定义的操作,比如添加请求头、错误处理等。

4.浏览器和Node.js支持

Axios既可以在浏览器环境下运行,也可以在Node.js环境中使用。这使得我们可以在前后端开发中都能轻松使用同一套API,提高开发效率。

5.自动转换JSON数据

Axios可以自动转换请求和响应中的JSON数据,使得数据处理更加方便。例如,当我们发送一个POST请求时,Axios会自动将JavaScript对象转换为JSON字符串。

二、安装

我这里使用的编译器是VSCode  只需要将你的项目文件在集成终端打开输入安装指令即可

npm install axios

下载完之后可以在 package.json中查看是否下载成功

三、使用步骤

1.创建文件夹

由于我们这里使用的是二次封装的写法。所以需要在src文件夹下创建一个API文件夹

在API文件夹中创建两个JS文件,一个名为api.js,另一个名为request.js

 

2.创建Axios对象

在api.js文件中编写以下代码 

//第一步导入Axios库
import axios from "axios";
//创建一个Axios对象
const request = axios.create({baseURL:"xxxxxxx",timeout: 5000 
})
export default request
  • baseURL:基础路径,默认是/ ,这里一般写的是后端的接口地址。如果是本地json数据的话,这里写的就是你Vue启动时候的默认地址。

  • timeout:请求超时,这里设置的是5000毫秒

  • export default:将request模块导出

3.封装请求方法 

在request.js中编写以下代码

//引入request模块
import request from "./api";
export function userlogin(data){return request({url:'xxxxxx',method:'xxxx',data:data})
}
  • url:后端方法接口,如果是本地json数据的话,这里写的就是你json文件的路径
  • method:请求方法。下面列表中是对于各种请求方法的介绍以即描述
  • data:向后端发送的数据。如果是GET方法的话,这里的配置项要变成params
序号方法描述
1GET从服务器获取资源。用于请求数据而不对数据进行更改。例如,从服务器获取网页、图片等。
2POST向服务器发送数据以创建新资源。常用于提交表单数据或上传文件。发送的数据包含在请求体中。
3PUT向服务器发送数据以更新现有资源。如果资源不存在,则创建新的资源。与 POST 不同,PUT 通常是幂等的,即多次执行相同的 PUT 请求不会产生不同的结果。
4DELETE从服务器删除指定的资源。请求中包含要删除的资源标识符。
5PATCH对资源进行部分修改。与 PUT 类似,但 PATCH 只更改部分数据而不是替换整个资源。
6HEAD类似于 GET,但服务器只返回响应的头部,不返回实际数据。用于检查资源的元数据(例如,检查资源是否存在,查看响应的头部信息)。
7OPTIONS返回服务器支持的 HTTP 方法。用于检查服务器支持哪些请求方法,通常用于跨域资源共享(CORS)的预检请求。
8TRACE回显服务器收到的请求,主要用于诊断。客户端可以查看请求在服务器中的处理路径。
9CONNECT建立一个到服务器的隧道,通常用于 HTTPS 连接。客户端可以通过该隧道发送加密的数据。

4.组件使用

在对应Vue组件中引入封装好的方法

<script setup>
//引入封装好的方法
import { userlogin } from '@/API/request'
userlogin().then((res) =>{console.log(res.data)})</script>
  • res.data:通过接口获取的数据 


http://www.xdnf.cn/news/10705.html

相关文章:

  • sqlite3 命令行工具详细介绍
  • 虚拟现实教育终端技术方案——基于EFISH-SCB-RK3588的全场景国产化替代
  • DNS (Domain Name System) 域名系统 将域名解析为 IP 地址
  • OCC笔记:TopoDS_Edge上是否一定存在Geom_Curve
  • 【Vmware】虚拟机安装、镜像安装、Nat网络模式、本地VM8、ssh链接保姆篇(图文教程)
  • J. Adv. Res. | DAP-seq助力解析大麦HvbZIP87基因让小麦抗病又高产的新机制
  • 吃透 Golang 基础:数据结构之 Map
  • UGUI Text/TextMeshPro字体组件
  • 从一堆数字里长出一棵树:中序 + 后序构建二叉树的递归密码
  • chromedriver 下载失败
  • 阿里云百炼全解析:一站式大模型开发平台的架构与行业实践
  • 智启未来:AI重构制造业供应链的五大革命性突破
  • 鸿蒙仓颉语言开发实战教程:购物车页面
  • AI Agent开发第78课-大模型结合Flink构建政务类长公文、长文件、OA应用Agent
  • 网络安全-等级保护(等保) 3-3-1 GB/T 36627-2018 附录A (资料性附录) 测评后活动、附 录 B (资料性附录)渗透测试的有关概念说明
  • WPF技术体系与现代化样式
  • 如何选择最高效的沟通方式?
  • 每日八股文6.3
  • 谷歌地图苹果版v6.138.2 - 前端工具导航
  • 极智项目 | 基于PyQT+Whisper实现的语音识别软件设计
  • HttpServletResponse 对象用来做什么?
  • T/CCSA 663-2025《医疗科研云平台技术要求》标准解读与深度分析
  • 黑马Java面试笔记之 微服务篇(业务)
  • 6.3 day 35
  • 榕壹云健身预约系统:多门店管理的数字化解决方案(ThinkPHP+MySQL+UniApp实现)
  • 前端面试高频问题通关指南—通用性问题
  • 相机Camera日志分析之二十三:高通相机Camx 基于预览1帧的process_capture_request二级日志分析详解
  • rate-limit 为 java 设计的渐进式限流开源工具
  • java Semaphore‌
  • 线程安全与线程池