axios基础学习——通过 Vue + axios 获取接口数据的小demo

news2024/11/30 18:51:00

文章目录

📋前言

🎯关于axios概要

❓什么是axios

🧩axios特性

🧩axios浏览器支持情况

🎯axios安装与使用

🧩axios请求方法

🧩axios的使用方法(以get为例子)

🎯demo介绍

🎯完整代码

🎯实现效果

🎯案例分析


📋前言

关于这个Vue + axios 获取接口数据的小demo,实现效果很简单,就是在Vue语法中,通过axios来获取接口的数据,然后打印出来,这里我们使用的是一个笑话的接口,其中重点关注的是如何使用axios、通过axios获取接口数据,因此这里就不介绍Vue的代码了,接下来先了解学习一下axios概要和使用方法(学过的可以直接看案例)。

🎯关于axios概要

❓什么是axios

  • 背景:以前关于get、post、put等请求,我们第一时间都想到就是jQuery。但如今随着Vue、React等优秀框架的出现,jQuery逐渐淡出了市场,同时促使了axios轻量级HTTP库的出现。
  • Axios,是一个基于promise的网络请求库,类似于jQuery的AJAX,作用于node.js和浏览器中,它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生node.js http模块, 而在客户端 (浏览端) 则使用XMLHttpRequest。

🧩axios特性

  1. 支持 Promise API
  2. 拦截请求和响应(可以在请求前及响应前做某些操作,例如,在请求前想要在这个请求头中加一些信息,如授权信息等)。
  3. 转换请求数据和响应数据(例如,在请求时一些敏感信息需要加密,在返回数据时需要解密)
  4. 取消请求(在解决高并发时,取消一些不必要的冗余重复请求)
  5. 自动转换JSON数据(HTTP 请求时,传输的数据都是字符串,如果服务器端返回的数据不是字符串类型,就需要使用JSON.parse()对它进行转换。然后向后台发起数据请求,会自动地进行转换,不需要进行手动操作)。
  6. 客户端支持防御XSS攻击(XSS是客户端经常出现的一种攻击方式,它发生在目标用户的浏览器层面上,当渲染DOM树的过程中发生了不在预期范围内的JavaScript代码执行时,就可以被判定为发生了XSS攻击)。

🧩axios浏览器支持情况

🎯axios安装与使用

Github开源地址: https://github.com/axios/axios


  • 使用CDN链接axios(这种方式较少使用,目前基本上都是脚手架创建项目后采用ES6 Modules引入需要的插件,但是这里的小demo可以使用这个,非常方便)
  • 使用 jsDelivr CDN:
<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
  • 使用 unpkg CDN:
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
  • 使用 npm安装:
$ npm install axios
  • 使用 cnpm安装:
$ cnpm install axios
  • 使用 yarn安装:
$ yarn add axios

🧩axios请求方法

  1. get:获取数据
  2. post:提交数据(表单提交 + 文件上传,一般用于提交数据,如上传图片或上传 Excel 文件等)。
  3. put:更新数据(所有数据推送到后端)。
  4. patch:更新数据(只将修改的数据推送到后端)
  5. delete:删除数据
  6. 这5个请求方法都是由后端定义的,也就是说,因为请求的接口都是请求到后端,然后由后端去操作数据库,把数据进行存储、修改和删除,所以具体的请求方法都是由后端来确定的。
  7. 具体就不介绍每个方法的使用案例了

🧩axios的使用方法(以get为例子)

方法一

axios.get("url").then(function (res) {
    console.log(res);
    }),
function (err) {
    console.log(err);
    }

方法二

axios({
     method: "get",
     url: "url"
}).then(res => {
     console.log(res);
}), (err) => console.log(err)

🎯demo介绍

  • 布局和样式就是一个按钮加一个显示文字的区域,这不是重点,重点通过axios获取到数据。
  • 功能就是点击按钮后,通过axios获取到数据,然后显示在方框中。
  • 使用的接口如下:


🎯完整代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<style>
</style>

<body>
    <div id="app">
        <input type="button" @click="getJoke" value="点击获取笑话数据">
        <div style="width: 400px;height: 400px; border: 1px solid; overflow: auto;">{{joke}}</div>
    </div>
</body>
<!-- 通过CDN链接axios -->
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
    //vue2写法
    // var app =new Vue({
    //     el:'#app',
    //     data:{

    //     },
    //     methods:{

    //     }
    // }).mount('#app');
    const {
        createApp
    } = Vue
    createApp({
        data() {
            return {
                joke: "通过axios获取笑话"
            }
        },
        methods: {
            getJoke: function () {
                //axios获取后端接口数据方法一
                // console.log(this.joke);
                var that = this
                axios.get("https://autumnfish.cn/api/joke").then(
                        function (res) {
                            console.log(res.data);
                            // console.log(that.joke);
                            that.joke = res.data
                        }),
                    function (err) {
                        console.log(err);
                    }

                //axios获取后端接口数据方法二
                // axios({
                //     method: "get",
                //     url: "https://autumnfish.cn/api/joke"
                // }).then(res => {
                //     console.log(res);
                // }), (err) => console.log(err)
            }
        },
    }).mount('#app')
</script>

</html>

🎯实现效果

🎯案例分析

  • 按钮通过v-on绑定一个点击事件,点击之后执行axios.get这个方法。
  • 文字区域通过v-model实现数据双向绑定,把通过axios获取到的数据显示在上面。
  • 这里要注意var that = this这段代码,在axios回调函数中的this已经改变无法访问到data中数据,因此通过var that = this这段代码把this保存起来,然后回调函数中直接使用保存的this即可。

🎯点赞收藏,防止迷路🔥 


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

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

相关文章

[C语言]进一步的来了解指针(多多多图详解)

本文章进一步的来讲解指针&#xff0c;如果是第一次接触指针的可以先看一下对于指针的初步理解 &#xff1a; [C语言]初步的来了解一下指针&#xff08;多图详解&#xff09;_HY_PIGIE的博客-CSDN博客 目录 1.字符指针 2.指针数组 2.1指针数组&#xff1a;char*类型举例说明 2…

Thawte旗下通配符SSL证书都有什么区别

Thawte由南非Mark Shuttleworth创立&#xff0c;Thawte SSL证书产品占据了全球SSL数字证书市场的40&#xff05;&#xff0c;是全球第三大数字证书颁发机构&#xff08;CA&#xff09;。随后VeriSign于2000年2月1日以5.75亿美元对Thawte换股完成收购&#xff0c;互相合作&#…

GDI对象泄漏导致程序UI界面绘制异常的问题排查

目录 1、问题说明 2、初步分析 3、查看任务管理器&#xff0c;并使用GDIView工具分析 5、采用历史版本比对法&#xff0c;确定初次出现问题的时间点&#xff0c;并查看前一天的代码修改记录 6、将修改的代码与测试现象结合起来&#xff0c;最终定位问题 7、事后的思考 8…

Simulating Content Consistent Vehicle Datasets with Attribute Descent(略读)

提出了一个大型的3D合成数据集VehicleX。其中各个3D模型都有现实世界的车型对应。整个数据集有1362个id&#xff0c;其中包括11种主流车型。 论文&#xff1a;https://arxiv.org/pdf/1912.08855.pdf 摘要 本文使用图形引擎来模拟带有免费注释的大量训练数据。 在合成数据和真…

回归预测 | MATLAB实现RF随机森林多输入单输出回归预测(含回归树,误差柱状图,多指标)

回归预测 | MATLAB实现RF随机森林多输入单输出回归预测(含回归树,误差柱状图,多指标) 目录 回归预测 | MATLAB实现RF随机森林多输入单输出回归预测(含回归树,误差柱状图,多指标)效果分析基本介绍输出结果程序设计学习总结参考资料效果分析

Mars3D Studio平台发布

近日我们基于提供丰富及智能化功能&#xff0c;助力团队做出精美的交互场景的理念&#xff0c;研发了Mars3D Studio平台&#xff0c;于2023年1月10日正式发布上线&#xff01;欢迎大家访问http://studio.mars3d.cn/ 网站进行体验。一、资源广场团队公开的丰富资源数据&#xff…

LeetCode题目笔记——1658. 将 x 减到 0 的最小操作数

文章目录题目描述题目难度——中等方法一&#xff1a;反向思考&#xff0c;双指针求最长子数组代码/Python代码/C方法二&#xff1a;滑动窗口代码总结我把这篇也归到面试题那一栏&#xff0c;因为觉得这题的思路和思考方式还挺好的&#xff0c;或许能用到其他题上 题目描述 给…

基于Node.js Vue清新严选助农电商平台/电商平台/购物平台

摘 要网络技术的快速发展给各行各业带来了很大的突破&#xff0c;也给各行各业提供了一种新的管理模块&#xff0c;对于清新严选助农电商将是又一个传统管理到智能化信息管理的改革&#xff0c;设计清新严选助农电商平台的目的就是借助计算机让复杂的购买商品操作变简单&#x…

gcc和gdb的使用——Linux

Linux学习全部合集点击即可订阅 “人生得意须尽欢” 这里是目录标题gcc的基本操作gcc处理代码的步骤预处理编译汇编链接头文件和库静态库动态库gdb调试makefile什么是makefile&#xff1f;进度条的实现缓冲区回车和换行git的使用.gitigonregcc的基本操作 编写代码的最基本操作…

【工具Share】用VBA获取批量文件中的同一个单元格内容

最近鼓捣了个工具&#xff0c;可以批量从固定文件夹的excel中获取同一个单元格中的具体内容&#xff08;当然&#xff0c;你也可以根据自己的需要&#xff0c;进行多个单元格内容的取得&#xff09; 可能这么说比较抽象&#xff0c;举例来说比如你在多个相同模板的excel中定义了…

java循环结构的概述

在之前的文章中&#xff0c;已经给大家详细地介绍过变量相关的内容&#xff0c;比如变量的概念、命名规范、变量的定义及底层原理等内容。但其实变量还有作用范围的概念&#xff0c;并且根据作用范围的不同&#xff0c;变量还可以分为成员变量、局部变量等内容。在我们今天开始…

Nacos config 配置中心详解

Nacos 提供用于存储配置和其他元数据的 key/value 存储&#xff0c;为分布式系统中的外部化配置提供服务器端和客户端支持。使用 Spring Cloud Alibaba Nacos Config&#xff0c;您可以在 Nacos Server 集中管理你 Spring Cloud 应用的外部属性配置。Spring Cloud Alibaba Naco…

【算法基础(1)】认识时间复杂度和常用排序算法

1 认识时间复杂度 1.1 什么是时间复杂度&#xff1f; 时间复杂度是一个函数&#xff0c;它定性描述该算法的运行时间&#xff0c;在软件开发中&#xff0c;时间复杂度就是用来方便开发者估算出程序运行时间&#xff0c;通常用算法的操作单元数量来代表程序消耗的时间&#xf…

pageoffice在线编辑word文件并禁止选中

一、整篇文档禁止选中 wordDoc.setDisableWindowSelection(true); //禁止word的选择文字功能 二、根据条件判断是否禁止选中 比如&#xff1a;选中内容超过一定字数&#xff0c;取消选中 解决方案&#xff1a;使用后端提供的OnWordSelectionChange事件。 PageOfficeCtrl po…

sgRNAs基因编辑

CRISPR-Cas9知识学习笔记 https://www.163.com/dy/article/FGCP58KC0532AN5N.html https://crispr.dbcls.jp CRISPR&#xff08;clustered regularly interspaced short palindromic repeats&#xff0c;成簇的规律间隔短回文重复序列&#xff09;和CRISPR-associated protein …

Spring Cloud Gateway服务网关的部署与使用(结合nacos)

一、微服务网关1.什么是微服务网关在传统的单体架构中&#xff0c;我们只需要开放一个服务给客户端调用即可。但是微服务架构中是将一个系统拆分成多个微服务&#xff0c;不同的微服务一般会有不同的网络地址&#xff0c;客户端在访问这些微服务时必须记住几十甚至百个地址&…

springboot多项目结构

微服务的目录结构一般分为如下几个模块&#xff1a; 当我们做的项目稍微大一点之后&#xff0c;就会经常遇到需要把不同的模块分离出来的时候&#xff0c;比如微信的朋友圈、微信支付、聊天服务等模块&#xff0c;像这种微服务项目一般都会把base、common、前端抽离出来。 com…

DP8403国产3W双通道无滤波器D类立体声音频放大器兼容替代CS8403

目标DP8403简介功能框图&#xff1a;DP8403主要特性DP8403简介 DP8403是3W双通道无滤波器D类立体声音频功率放大器芯片&#xff0c;能够以D类放大器的效率提供AB类功率放大器的性能。采用D类结构&#xff0c;DP8403 能够在 4Ω负载和 5V 电源条件下&#xff0c;提供高达 3W 输…

MySQL (五)------数据库三范式、外键约束、多表间关系、多表关联查询、子查询

数据库三范式 好的数据库设计对数据的存储性能和后期的程序开发&#xff0c;都会产生重要的影响。建立科学的&#xff0c;规范的数据库就需要满足一些规则来优化数据的设计和存储&#xff0c;这些规则就称为范式。 1.1 第一范式: 确保每列保持原子性 第一范式是最基本的范式…

深入理解java反射原理

系列文章目录 文章目录系列文章目录前言一、 如何获取反射中的Class对象&#xff1f;二、反射的步骤三、详细解答1. 获取对象类的实例2、newInstance() 的实现方式3、获取Method对象4. 调用invoke()方法。总结前言 反射是在运行状态中&#xff0c;对于任意一个类&#xff0c;都…