Springboot + vue的前后端分离开发 前后端分离就是将一个应用的前端代码和后端代码分开写。
为什么要这么做?如果不使用前后端分离的方式,会有什么问题?
传统的JavaWeb开发中,前端使用jsp开发,jsp不是后端开发者来独立完成的
这种开发方式的效率极低,可以使用前后端分离的方式进行开发,就可以完美的解决这样的问题。
前端只需要独立编写客户端代码,后端也只需要独立编写服务端代码提供数据接口即可。
前端通过AJAX请求来访问后端的数据接口,将Model展示到View中
前后端开发者只需要提前约定好接口文档(URL,参数,数据类型。。),然后分别独立开发即可,前端可以造假数据进行测试,完全不需要依赖于后端,最后完成前后端集成即可。真正的实现了前后端应用的解耦合。极大的提升了开发效率。
单体:前端应用+后端应用
前端应用:负责数据展示和用户交互。
后端应用:负责提供数据处理接口。
前端HTML --> Ajax -->Restful后端数据接口。
单体应用
前后端分离项目 前后端分离就是将一个单体应用拆分成两个独立的应用,前端应用和后端应用以JSON格式进行数据交互
实现技术 vue3.0版本
1、在命令行里输入vue ui
2、关闭git
3、选择手动
4、点击创建
5、点击任务-serve-运行
npm node.js使用的小bug
idea中terminal输入‘npm‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
解决办法:
1、File - Settings
文章图片
2、将shell path地址换成如下。C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
,重启idea。
文章图片
下载ajax的插件 输入 vue add axios
跨域问题的解决办法 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D8OiFTxF-1647947872711)(C:\Users\hp\AppData\Roaming\Typora\typora-user-images\image-20220126111248533.png)]
在前端应用中加入
// 初始化函数
created() {
const _this = this;
axios.get('http://localhost:8081/book/findAll').then(function (resp){
_this.books = resp.data;
})}
后端应用中加入config/CrosConfig
//解决跨域
@Configuration
public class CrosConfigimplements WebMvcConfigurer {public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOriginPatterns("*")
.allowedMethods("GET","HEAD","POST","PUT","DELETE","OPTIONS")
.allowCredentials(true)
.maxAge(3600)
.allowedHeaders("*");
}
}
前后端分离项目的案例 前端:vuetest
后端:springboot-test
vue + Element UI vue 集成 Element UI
Element UI 后台管理系统主要的标签
- el-container:构建整个页面框架
- el-aside :构建左侧菜单的
- el-menu:左侧菜单内容
- 常用属性
- :default-openeds :默认展开的菜单,通过菜单的index值来关联
- :default-active :默认选中的菜单,通过菜单的index值来关联
:default-active="'1-1'"
- el-submenu :可展开的菜单,常用属性:index 菜单的下标,文本类型,不能是数值类型
- template :对应el -submenu的菜单名。
- i :设置菜单图标,通过class属性实则。
- el-icon-message
- el-icon-menu
- el-icon-setting
- el-menu-item
- el-menu-item :菜单的子节点,不可在展开 ,常用的属性:index :菜单的下标,文本类型,不能是数值类型。
Vue router来动态的创建左侧菜单
- 常用属性
- 导航1
- 页面1
- 页面2
- 导航2
- 页面3
- 页面4
2、在页面中添加标签,它 是一个容器,动态渲染你选择的router
3、的index值就是要跳转的router
小bug 路由跳转失败
vue3 +el-menu实现路由跳转失败
解决办法:
要在 标签中加 router属性
Element UI表单数据校验 定义rules对象,在rules对象中设置表单各个选项的校验规则
rules: {
name: [
{ required: true, message: '请输入活动名称', trigger: 'blur' },
{ min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' }
],}
required: true,是否为必填项
message: ‘请输入活动名称’,提示信息
trigger: ‘blur’ :触发事件
小bug ids for this
ids for this class must be manually assigned before calling save(): com.jia.enity.Book;
解决办法:
因为数据中的数据id是自增的,测试的时候没有写id,要在实体类上加上注解
@GeneratedValue(strategy = GenerationType.IDENTITY)
前后端放在一个项目里 vue的代码启动流程 1、点击Edit Config
2、选 npm 然后在划线处写serve
3、启动的时候切换成serve 点击启动按钮即可
【springboot|1、准备篇 Springboot + vue的前后端分离开发】https://gitee.com/xqnode/pure-design.git
推荐阅读
- SpringBoot|SpringBoot 如何集成 MyBatisPlus - SpringBoot 2.7.2实战基础
- springBoot|SpringBoot 集成 MybatisPlus 自动生成简单的CRUD,可结合构造器使用
- SpringBoot|SpringBoot集成MyBatisPlus生成代码和操作
- SpringBoot|SpringBoot笔记(SpringBoot集成MyBatisPlus实战)
- 微服务|Springboot集成Mybatisplus,轻松CRUD
- #|SpringBoot 简介和第一个项目
- springBoot|springBoot之如何搭建第一个简单的springBoot项目(Hello World)
- SpringBoot|2021-08-06Spring @Cacheable注解的使用
- springboot|mybatis-plus代码生成器的使用