手把手教你入门vue+springboot开发(二)

文章目录

  • 前言
  • 一、开发环境搭建
  • 二、创建项目
  • 三、编写代码
    • 1.插件下载
    • 2.编写代码
  • 四、测试验证
  • 总结


前言

前面我们构建了一个查询用户信息的简单springboot后端demo,今天我们先搭建VSCode+vue的开发环境,然后在这个开发环境上构建一个demo,连接后台springboot demo查询用户信息。


一、开发环境搭建

1)首先去nodejs官网下载node-v20.14.0-x64.msi安装,网址如下:
https://nodejs.org/
2)按以下链接设置环境变量。
https://www.jb51.net/javascript/311637gm8.htm
3)VS官网下载VSCodeUserSetup-x64-1.89.1.exe安装
https://code.visualstudio.com/Download
以上过程如有问题自行搜索解决。

二、创建项目

首先打开VS Code,注意一定要以管理员身份运行,否则的话后面运行npm命令的时候会出错。
然后点击左侧导航菜单的“Open Folder”选择一个文件夹保存项目。
在这里插入图片描述
右键点击"demo"文件夹,选择"Open in Integrated Terminal"菜单打开内置命令行。
在这里插入图片描述
在VS Code下边会出现一个命令行输入窗口,输入vue create vue-demo命令创建vue-demo项目,选择Vue 3回车。
在这里插入图片描述
创建成功后会出现以下提示,意思是输入命令运行项目,如下图:
在这里插入图片描述
我们先运行试一下,运行成功会出现下图提示,在浏览器中打开网址即可。在命令行按“ctrl+c”可以停止运行。
在这里插入图片描述

三、编写代码

1.插件下载

项目创建好后有一些插件需要下载,当然也可以在写完代码后运行报错后再去下载,这些插件的作用我们先不说,在后续的代码中大家应该就能知道。依次运行以下命令下载插件。

npm install axios --save
npm install element-plus --save
npm install vue-router --save
npm install sass-loader sass --save
npm install @vueup/vue-quill --save
npm install pinia-persistedstate-plugin --save
npm install pinia --save

下载成功如下图
在这里插入图片描述
可以对比下载插件前后package.json文件,发现dependencies中会多出这些插件名称。
在这里插入图片描述

2.编写代码

1)在src目录下新建目录utils,在utils目录下新建request.js,这个文件主要是导入axios,使用它与后端交互,输入代码:

//导入axios  npm install axios
import axios from 'axios';//定义一个变量,记录公共的前缀  ,  baseURL
const baseURL = 'http://localhost:8088';
const instance = axios.create({ baseURL })export default instance;

注意这里的baseURL填写的是后台地址与端口,我这里是在本机运行springboot后台程序,端口是8088,这个可以见第一篇。
2)在src目录下新建目录api,在api目录下新建user.js,这个文件主要实现使用request从后端交互数据业务,输入代码:

import request from '@/utils/request.js'//用户信息查询
export const userListService = ()=>{return request.get('/user/selectAll')
}

这里get里面填写的是后台URL路径,这个可以见第一篇。
3)在src目录下新建目录views,在views目录下新建UserInfo.vue,这个文件主要实现UI界面,输入代码:

<script setup>import { ref } from 'vue'//用户信息数据
const users = ref([
])//查询用户信息
import { userListService } from '@/api/user.js'
const userList = async () => {let result = await userListService();users.value = result.data;
}userList()//import { QuillEditor } from '@vueup/vue-quill'
import '@vueup/vue-quill/dist/vue-quill.snow.css'
//import { Plus } from '@element-plus/icons-vue'</script>
<template><el-card class="page-container"><template #header><div class="header"><span>用户信息</span></div></template><!-- 用户列表 --><el-table :data="users" style="width: 100%"><el-table-column label="id" width="400" prop="id"></el-table-column><el-table-column label="用户名" prop="userName"></el-table-column><el-table-column label="密码" prop="password"> </el-table-column><el-table-column label="性别" prop="sex"></el-table-column><el-table-column label="电话号码" prop="telephone"></el-table-column><template #empty><el-empty description="没有数据" /></template></el-table></el-card>
</template>
<style lang="scss" scoped>
.page-container {min-height: 100%;box-sizing: border-box;.header {display: flex;align-items: center;justify-content: space-between;}
}
</style>

4)在src目录下新建目录router,在router目录下新建index.js,这个文件主要实现URL path与views中UI界面的映射关系配置,输入代码:

import { createRouter, createWebHistory } from 'vue-router'//导入组件
import UserInfoVue from '@/views/UserInfo.vue'//定义路由关系
const routes = [{ path: '/', component: UserInfoVue }
]//创建路由器
const router = createRouter({history: createWebHistory(),routes: routes
})//导出路由
export default router

5)修改src目录下main.js文件,输入代码:

import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import router from '@/router'
import App from './App.vue'
import locale from 'element-plus/dist/locale/zh-cn.js'const app = createApp(App);
app.use(router)
app.use(ElementPlus,{locale});
app.mount('#app')

6)修改src目录下App.vue文件,输入代码:

<script setup>
</script>
<template><router-view></router-view>
</template>
<style scoped>
</style>

整体目录结构见下图,红色为需要增加的,蓝色为需要修改的。
在这里插入图片描述

四、测试验证

输入命令npm run serve运行项目
在浏览器输入“http://localhost:8080”,此时查不到数据。
这是由于跨域问题引起的,可以在springboot的demo项目中修改UserController.java文件,在UserController类实现之前增加@CrossOrigin解决跨域,然后重新运行后台程序。
在这里插入图片描述
在浏览器中刷新“http://localhost:8080”,可以查询到后台数据。如下图
在这里插入图片描述

此时也可以用IDEAU工具在users数据表中增加记录,然后刷新网页就可以更新数据。


总结

至此,vue+springboot前后台数据就打通了,编程的细节实现我们先放一放,下一步我们先做一个简单登录问题来深入理解一下。

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

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

相关文章

肠道病原体感染定植的三个关键角色——炎症、营养与共生菌群

谷禾健康 日常生活中大部分人都可能碰到过食用了不卫生或过期变质食物以及水源后&#xff0c;出现过恶心、腹痛&#xff0c;并伴有腹泻、食欲不振、呕吐等症状&#xff1f;如果有就要当心&#xff0c;这可能是病原体感染引起的胃肠道炎症。 但是&#xff0c;即使食用了同样食物…

mysql中 redo日志(下)

大家好。上篇文章我们介绍了什么是redo日志以及redo日志的写入过程。建议没看过上篇文章的同学先看一下上一篇文章&#xff0c;今天我们继续来说一说redo日志。 一、redo日志文件 1. redo日志刷盘时机 我们知道mtr运行过程中产生的一组redo日志在mtr结束时会被复制到log buf…

从VS Code源码看清晰代码之美

VS Code的产品做的很优秀&#xff0c;其源码也质量颇高&#xff0c;清晰、整洁、富有美感。 下面是 src\vs\workbench\common\notifications.ts 文件中的两段代码&#xff0c;大家感受一下&#xff1a; get sticky(): boolean {if (this._sticky) {return true; // explicitl…

Python基础总结之列表转字符串

Python基础总结之列表转字符串 在Python中&#xff0c;将列表转换为字符串有多种方法&#xff0c;最常用的是使用str.join()方法。这里有一些示例&#xff1a; 使用str.join()方法 这是将列表转换为字符串的最直接和最常用的方法。你需要确保列表中的所有元素都是字符串类型…

本地文件传远程开发

1. 本地文件传远程开发 安装sftp插件 创建sftp配置文件 创建.vscode目录&#xff0c;在目录下创建sftp.json文件&#xff0c;内容如下&#xff1a; {"name": "ip", "host": "ip", "protocol": "sftp","po…

麒麟系统 3588 环境安装手册

目录 一、银河麒麟下安装OPenCV基础库 3、安装yasm-1.2.0 4、安装x264 5、安装fdk-aac-0.1.6 6、安装Speex 7、安装pkg-config 8、安装zlib1g 9、安装libgtk2.0 10、安装ffmpeg ffmpeg环境配置 二、银河麒麟下移植OpenCV 编译opencv qwer1234 麒麟 默认root 密码 …

vue 笔记04

目录 01 自定义指令的使用 02 watch 监听的使用 03 Vue动画之使用动画库 01 自定义指令的使用 系统自带的指令功能不足的时候可以创建自定义指令 和data同级的位置定义: directives:{ 不带v-的指令名称(当前指令所在的标签dom对象,指令对象){ } } 通过指令对象.value能够获…

冲刺面试加油

1、HTML语义化&#xff1f; 对于开发者而言&#xff0c;语义化标签有着更好的页面结构&#xff0c;有利于代码的开发编写和后期的维护。 对于用户而言&#xff0c;当网络卡顿时有良好的页面结构&#xff0c;有利于增加用户的体验。 对于爬虫来说&#xff0c;有利于搜索引擎的…

Django 默认 CSRF 保护机制

Django 的默认 CSRF 保护机制旨在防止跨站请求伪造攻击(CSRF)。CSRF 攻击是一种恶意攻击,其中攻击者通过伪造用户的请求来执行未授权的操作。Django 通过以下方式实现 CSRF 保护: 1. CSRF 中间件 Django 包含一个 CSRF 中间件 (CsrfViewMiddleware),它会自动添加到项目的…

所谓自律,就是去对抗那些廉价的快乐

所谓自律&#xff0c;就是去对抗那些廉价的快乐 以下文章来源于洞见 &#xff0c;作者洞见 导语 打败内心那只及时享乐的猴子。 董宇辉说过这样一句话&#xff1a;“廉价的快乐是直接给你想要的东西&#xff0c;高等的快乐则会给你设置重重阻碍。” 廉价的快乐&#xff0c;就…

Huggingface的Transformer库经验总结

文章目录 transformerstransformers.Trainertrain()tr_loss self.training_step(model, inputs)dagn的forward中逐步计算损失函数 transformers transformers.Trainer class Trainer:#这段代码根据训练数据集的类型和硬件环境&#xff0c;选择适当的采样器来处理数据集。def…

【免费Web系列】大家好 ,今天是Web课程的第十七天点赞收藏关注,持续更新作品 !

这是Web第一天的课程大家可以传送过去学习 http://t.csdnimg.cn/K547r SpingBoot原理 在前面十多天的课程当中&#xff0c;我们学习的都是web开发的技术使用&#xff0c;都是面向应用层面的&#xff0c;我们学会了怎么样去用。而我们今天所要学习的是web后端开发的最后一个篇…

冯喜运:6.7晚间黄金原油行情分析及操作建议

【黄金消息面分析】&#xff1a;周四(6月6日)纽市尾盘&#xff0c;现货黄金盘中报2373.15美元/盎司&#xff0c;涨18.16美元或0.77%。如果金价反弹至上周高点2364上方&#xff0c;将引发一周看涨反转。日收盘价高于该价格水平将确认突破。一旦突破得到确认&#xff0c;金价进一…

Vue3【十一】08使用toRefs和toRef

08使用toRefs和toRef toRefs()函数将person对象中的name和age属性转换为响应式引用&#xff0c;并返回一个对象&#xff0c;对象中的name和age属性都是响应式引用&#xff0c;具有响应式功能。 toRef()函数将person对象中的name属性转换为响应式引用&#xff0c;并返回一个响应…

海南聚广众达电子商务咨询有限公司正规吗?

在数字经济的浪潮下&#xff0c;海南聚广众达电子商务咨询有限公司凭借其对抖音电商领域的深刻洞察和专业服务&#xff0c;成为引领行业新风尚的佼佼者。公司不仅具备丰富的电商运营经验&#xff0c;更有一支高效、创新的团队&#xff0c;致力于为品牌商家提供全方位的电商解决…

ThingsKit:智能物联网平台的创新者

在数字化浪潮的推动下&#xff0c;物联网&#xff08;IoT&#xff09;正在迅速改变我们的生活和工作方式。ThingsKit&#xff0c;一个领先的物联网平台&#xff0c;致力于通过其创新的技术和服务&#xff0c;为用户提供一个全面、灵活且易于使用的解决方案。 核心特点 设备连接…

MyBatisPlus插件生成代码

文章目录 概要安装插件使用插件 概要 MyBatis-Plus 是 MyBatis 的增强工具&#xff0c;旨在简化 MyBatis 的开发。MyBatis-Plus 代码生成器插件可以自动生成项目中常见的代码&#xff0c;如实体类、Mapper 接口、Service 接口和实现类、Controller 等&#xff0c;从而减少手动…

FreeSurFer的recon-all处理流——学习记录

官方网址&#xff1a;ReconAllTableStableV6.0 - Free Surfer Wiki &#xff08;1&#xff09;颅骨剥离skullstrip 颅骨剥离后生成文件&#xff1a;/mri/brainmask.mgz &#xff08;2&#xff09;图像配准canorm Freesurfer图像配准&#xff1a;将 mri/nu.mgz 体积与 FREESU…

SpringBoot+Vue学生作业管理系统【附:资料➕文档】

前言&#xff1a;我是源码分享交流Coding&#xff0c;专注JavaVue领域&#xff0c;专业提供程序设计开发、源码分享、 技术指导讲解、各类项目免费分享&#xff0c;定制和毕业设计服务&#xff01; 免费获取方式--->>文章末尾处&#xff01; 项目介绍047&#xff1a; 【…

面试高频问题----6

一、String、StringBuffer、StringBuilder 1.String&#xff1a; ***string类是java中用于表示不可变字符序列的类。 ***string对象是不可变的&#xff0c;一旦创建&#xff0c;其值就不能被改变。每次对string对象的修改操作都会生成一个新的string对象。 ***由于string的…