vue学习四:Axios网络请求

Axios 是一个基于 Promise 的 HTTP 客户端库,常用于浏览器和 Node.js 环境发送网络请求,是前端最常用的请求工具之一。是Ajax的优化版本。

起步 | Axios中文文档 | Axios中文网

从官网中获得安装命令

复制代码
npm install axios

并在需要使用的vue组件中,于viewmodel层加入引用

复制代码
import axios from 'axios'

axios的两大请求方式

参数可以置于?后方,或者利用params来存储多个参数,处理结果会返回给function中的参数中,成功返回给response,失败给error。

POST方法中,参数放在请求体中。post传给后端会自动转化为json格式,所以后端要注意数据接收类型。

生命周期钩子的简单介绍

生命周期钩子 = 组件从创建到销毁过程中自动触发的函数,用来在特定时机执行代码。

生命周期钩子放在目标组件的view部分,即<script>标签内。

复制代码
created() {
  // 一创建就请求数据
  console.log("App组件组件创建完,可发请求、初始化数据")
},
mounted() {
  // DOM 准备好了
  console.log("页面已被挂载,DOM 已渲染,可操作 DOM、初始化插件")
},
updated(){
  //数据变化、视图更新后触发
},
unmounted() {
  console.log("组件销毁,清除定时器、解绑事件")
},

此时在生命周期函数中,来使用axios的跨域连接操作 。

其中mounted与created为异步执行,所以mounted中的数据会被先打印。

对应的后端中的查询方法

访问前端端口http://localhost:8080/后,在控制台中得到信息跨域连接被拦截,因为违反了跨域连接安全协议,所以还需要进行额外配置

关于跨域信息的介绍如下:

若想让单个控制器可以不被浏览器阻拦,则可以在该控制器中添加@CrossOrigin注解,便解决了该单个控制器的跨域拦截问题

在浏览器中也可以查询到状态,由前端的response返回体返回如下数据,其中data则装在后端的查询返回值,对应转化为json类型。

若想要全局生效,则改为编写配置类,选择默认模板或者自适应修改

复制代码
@Configuration
public class corsconfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")//控制器的路径
                .allowedOriginPatterns("*") //端口号如8080(2.4+版本用该语句)
                .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE")
                .maxAge(168000)
                .allowedHeaders("*") 
                .allowCredentials(true);
    }
}

axios可以作为数据导入,与之前的elementui组件相结合。

view层:

view model层:

在统一文件中需要写在data属性中

在view的部分中,对应的prop作为索引来连接view model的每一行数据部分,label是显示的表格列头的文字。

但数据应为浏览器网络传输,从数据库中得到数据,而非提前在前端中写死数据。将tableData的原始数据置空后,此时通过axios的get方法来从后端数据库中得到数据。得到的数据如下,注意每行数据字段应该与前端中表格的prop字段一致。

然后利用如下返回方法返回数据,可以确保this的父级一致。注意返回的内容只需要是response参数的data层即可。请求头以及状态等等冗余数据无需返回给页面输出。

复制代码
axios.get().then((xx)=>{ this.xxx=xx.data })

得到浏览器的返回结果:

该vue功能实现部分代码:

关于后续便于配置后端的连接:

在main.js导入axios,并配置如下配置行

复制代码
import axios from 'axios'

axios.defaults.baseURL = 'http://localhost:8081'//后端的访问根路径

相当于在vue全局配置了一个叫$http的属性名,他的值是axios。

复制代码
app.config.globalProperties.$http = axios

对应在方法调用时,将axios替换为this.$http以及缩短后端的访问路径

配置后:

相关推荐
Csvn2 小时前
性能监控
前端
前进的李工3 小时前
Agent 学习笔记 05:系统提示词应该怎么写
笔记·学习·prompt·agent·个人开发·few-shot·ai应用开发
Csvn3 小时前
构建工具
前端
FRing033 小时前
vue2干货总结3(computed计算属性、watch监听器)
开发语言·前端·vue.js·vue2
Java小卷4 小时前
JuanForm vs FormCreate!Vue3 表单引擎联动配置 PK!
vue.js·低代码
正在走向自律4 小时前
【3/5】人工智能训练师 三级/高级工 考证学习方向:从“独立执行”到“设计、归因与全链条负责”
人工智能·学习·人工智能训练师·注方案设计·数据质控负责人·模型评测与调优辅助·ai训练项目交付
kyriewen6 小时前
Skills 榜前 10 我全装了:只有 3 个能直接用
前端·javascript·程序员
IT_陈寒6 小时前
当Java的hashCode遇上Lombok,我的缓存被全清了
前端·人工智能·后端
CCIE-Yasuo6 小时前
网络安全-学习数据库-Mysql-2
数据库·学习·mysql
工控丫丫6 小时前
帆软看板中经常使用的公式函数及经常搭的组合
前端·javascript·数据库