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

vue实现与后台springboot传递数据【传值/取值 Axios 】

vue实现与后台springboot传递数据【传值/取值】

提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是node.js和vue的使用。前后每一小节的内容是存在的有:学习and理解的关联性。【帮帮志系列文章】:每个知识点,都是写出代码和运行结果且前后关联上的去分析和说明(能大量节约您的时间)。

所有文章都*不会*直接把代码放那里,让您自己去看去理解。我希望我的内容对您有用而努力~


文章目录

  • vue实现与后台springboot传递数据【传值/取值】
  • 前言
  • vue工程安装axios,及axios的语法
  • 一、编写网页界面
  • 二、编写后台对应的类
  • 三、启动
  • 总结


本文章是系列文章,技术栈内容为:【springboot+vue】【前后分离】
【详细图文,实操步骤分享,节约时间版】。最终完成一个商业化项目。内容有:
springboot知识
mybatisPlus知识
vue知识
node.js知识

本小节的内容是
vue篇章 之 : 09.vue实现与后台springboot传递数据【传值/取值】



每一个文章小节都会把 标题 说的很清楚。前后关联看,可以快速实现:前后分离。本质上,额外文章链接和文章自己标题内容关系不大。

前面小节文章已经实现springboot的创建,springboot关联前端数据swagger和springboot通过mybatisplus操作数据库
【2025年】基于电脑的jdk1.8通过idea创建springboot2.x版本(非常简洁快速)
【上榜文章,一文搞定】现在springboot是3.x以上版本,jdk版本至少要求17.但是很多时候我们电脑是jdk1.8(求稳定性和安全性)。文本分享本机电脑1.8的jdk。idea如何非常简洁快速的创建springboot
文章里面也有 为什么只能是jdk17起和地址指定为阿里云报错的解决办法

前面小节已经安装好node.js和分享了一些vue语法,及RESTful风格及安装配置swagger使用,和:
如何启动vue项目及vue语法组件化不同标签应对的作用说明
通过工具生成的vue案例(工具生成vue项目工程结构,里面有一个欢迎界面网页)为切入点,逐步逐步修改分享讲解,完成vue项目如何启动。及自行编写一些标签和样式来替换默认的内容,帮助理解包括里面的标签,js代码,样式如何配合的


前言

完成 前端 vue.js工程结构准备
前端能启动vue项目即可(vue项目的工程结构及语法分享在前面章节)。vue项目里面网页怎么写取后台的值和发送数据到后台,是本文章分享的内容:下面

完成 后台 springboot工程结构准备
包括springboot项目(dao、service、controller、pojo实体类)。controller类里面的方法能拿实现不同提交方式(get post put delete) 去调用service/dao。 dao通过mybatisPlus操作mysql数据库(前面章节有分享)

vue工程安装axios,及axios的语法

命令 npm install axios

可以在终端里面写命令。我是在 前面已经写好的 vue项目里: vsCode终端 去写的这个命令
在这里插入图片描述

axios语法:

get提交
axios.get('/user?uid=1').then(function(response){//提交后台成功,执行的内容(then里面),response是相应结果}).catch((function(error){//提交后台失败,执行的内容(catch里面),error是错误信息})
post提交
axios.post('/user',{name:'bob',age:18}).then(function(response){//提交后台成功,执行的内容(then里面),response是相应结果}).catch((function(error){//提交后台失败,执行的内容(catch里面),error是错误信息})

重要:axios语法写在哪里
其实下面有直接可以使用的案例
但,这一段分享一个概念:

vue提供了很多生命周期的函数,就是这个xxx.vue文件从创建,到加载/挂载,然后到使用,最后到销毁等等
不同的vue文件的生命周期 什么时候自动去调用函数

比如:
组件什么时候被创建?答:被使用的时候,在网页里面:逐行逐行 =标签= 加载下来,加载到您现在使用vue标签,如前面案例的:bangbangzhi标签(bangbangzhi标签表示我们自己创建的bangbangzhi.vue)。 需要显示bangbangzhi标签的时候:
bangbangzhi标签 会被创建 一个vue对象 ,然后需要就是加载。
最后用户切换网页了 \ 关闭网页了
组件就销毁
附:vue推荐组件开发,三个标签组成一个组件(js,标签,样式 这三个)【前面有分享】。这个组件可以是菜单栏,可以是网页头部,可以是网页尾部。。等等 当现在用户正在查看的网页,网页里面有用到这个组件的时候,组件就需要加载-显示

不同的生命周期,vue提供对应的不同函数(我们在代码里面写 methods: 这个是自定义函数,自己定义自己调用,和vue的生命周期没关系):

【现在我需要发送请求给后台,后台服务器发送数据给我们,所以:标签还没有显示之前,就需要自动去执行】
用:created函数,这个vue是自带的(加载组件显示之前的时候 会自动调用:)
调用之后,会声明一些对象来存储数据(存储后台发过来的数据)。生命周期结束(组件销毁。这个对象存数据也跟着销毁了~)


一、编写网页界面

App.vue里面修改:

<template><img alt="Vue logo" src="./assets/logo.png"><bangbangzhi></bangbangzhi><bangbangzhi></bangbangzhi><bangbangzhi></bangbangzhi> <!-- 这个标签是一个vue文件,前一小节分享了:《自行编写网页标签内容》 --><h1>{{ uD.uname }}</h1>  <!-- 取出ud里面的值 -->
</template><script>
//可以导入很多个自己写的组件   一个网页头部,尾部,菜单栏,左边div,中间内容。  哪个网页要用,就对应导入哪几个
import bangbangzhi from './components/bbz.vue' 
import axios from 'axios'export default {name: 'App',created:function(){ //创建当前vue对象的时候,自动执行created函数axios.get("http://localhost:8081/getUser").then((response)=>{  //后台把springboot的端口修改成了8081this.uD = response.data   //get提交到后台,将后台接收的值,放到uD变量里面})},data(){return {uD : ""  //当前仅仅声明uD变量,不给数据. 数据在  created里面赋值}},components: {bangbangzhi   //把上面我们自己在同层级位置的components文件夹里面创建的 vue文件 声明为一个标签}
}
</script>

这个是截屏,内容也不多,看vue文件的位置和里面有啥(就一个h1标签)
在script标签里面引入vue文件,并声明为一个标签。在template引用即可(可以多次,例子用了3次)
在这里插入图片描述


二、编写后台对应的类

编写后台controller

@RestController
@CrossOrigin//axios跨域的问题  不写可能报错:不信任其他地址的数据 加上这个注解即可
public class UserController {@GetMapping("/getUser")public User getUser(){ //这里没有写参数去接收前端的数据,是因为突出文章主题,其他少一点(需要接参数,正常写即可)User user = userDao.selectById(1);return user;}
}    

实体类

public class User {@TableIdprivate int uid;private String uname;//这个就是vue里面取值的成员变量private int uage;
...构造函数 get set 略
dao层使用mybatisPlus  [] 前面几个章节有

数据库
在这里插入图片描述


三、启动

在这里插入图片描述

您哪个网页需要使用后台的数据,就写上

axios.get("地址").then((response)=>{ this.变量名 = response.data   })//需要post 带数据,上面有语法分享

说明一下:我用的h1标签来举的例子,template标签可以复杂一点。有表格,循环标签,列表,if标签 ,等等等,vue语法:template标签从js里面 : {{ 取值 }} 或者 v-xxx取值。并不是文章分享的重点内容(本系列有),前面文章分享了vue的各种内容显示方法代码示例。后台也可以返回list集合,对象。

默认网页刷新就需要显示,就写在created:里面
点击按钮,才提交请求给后台,就写在自己定义的方法函数体里面,按钮绑定函数


总结

说明一下:整个这个系列实现前后分离的springboot+vue项目。序号文章一共也就10几篇,只有核心图文重点操作步骤来实现这个目标(基本上您边看边写:一个小时或者一上午就能跟着一起手搓一个前后分离项目,然后您可以自行添加功能和内容在您项目里面)

其他扩展细节知识点,本系列省略了(或者有链接)如:
axios还有一些案例,但是现在案例基本满足大部分情况,毕竟当前我们的目的是:快速手搓一个前后分离的全栈。
axios的其他功能及使用,管它*现在*用不用的上,内容全部丢进来。各位看官自行消化。那~可能会很多很多了(又耗时)。当前 系列: 手搓出来之后,您可以自行加功能和内容

(会陆续更新非常多的IT技术知识及泛IT的电商知识,可以点个关注,共同交流。ღ( ´・ᴗ・` )比心)
(也欢迎评论,提问。 我会依次回答~)

相关文章:

  • 超越合并速度(merge speed):AI如何重塑开发者协作
  • FPGA----基于ZYNQ 7020实现定制化的EPICS程序开发
  • Chrome更新到136以后selenium等自动化浏览器失效
  • 【Redis】分布式锁的实现
  • 【AXI总线专题】AXI-FULL-Master
  • 从0开始学习大模型--Day07--大模型的核心知识点
  • 纽约时报发稿刊登案例:海外新闻媒体宣传如何赢得美国决策者
  • UE5.3 C++ 房屋管理系统(二)
  • PyTorch 中的 Autograd 实现细节解析和应用
  • Go语言:json 作用和语法
  • 请解释 React Native 的新架构(Fabric 和 TurboModules)与旧架构的主要区别
  • Golang企业级商城高并发微服务实战
  • 集成指南:如何采用融云 Flutter IMKit 实现双端丝滑社交体验
  • hiveserver2与beeline进行远程连接hive配置及遇到的问题
  • #S4U2SELF#S4U2Proxy#CVE-2021-42278/42287
  • DeepWiki: Github的百科全书
  • MCP与GitHub的集成:开发者的“自动化流水线”革命
  • 什么是ERP?ERP有哪些功能?小微企业ERP系统源码,SpringBoot+Vue+ElementUI+UniAPP
  • 傲云源墅:以五傲价值重构北京主城别墅格局
  • 自动发电控制是一次调频还是二次调频?
  • 甩掉“肥胖刺客”,科学减重指南来了
  • 不到1小时就能速发证件?央媒曝光健康证办理乱象
  • “影像上海”中的自媒体影像特展:无论何时,影像都需要空间
  • 新华时评:中国维护国际经贸秩序的立场坚定不移
  • 三星“七天机”质保期内屏幕漏液被要求自费维修,商家:系人为损坏
  • 长期对组织隐瞒真实年龄,广元市城发集团原董事韩治成被双开