当前位置:   article > 正文

SpringBoot+Vue项目启动_springboot和vue项目运行

springboot和vue项目运行

1.项目部署

安装脚手架

npm install -g @vue/cli 全局安装

创建项目

命令行创建:vue create <ProjectName>

图形界面创建: vue ui 可进行安装插件的修改

Idea编译器配置

Add Configuration中选择package.json并添加npm run

package.json中的scripts中的serve中添加--open后,运行自动打开页面

 

2.项目编码

下载与引入ElementPlus

终端下载:npm install element-plus --save

页面引入:在main.js中根据官网代码引入

vue引入components

  1. export default{
  2. name:"Layout",
  3. components:{
  4. Header,
  5. Aside
  6. }
  7. }

设置合适的长度

min-height:calc(100vh-50px)

页面架构

App.vue总体结构中规定主体内容区 views文件夹中Home.vue etc.

 

3.后台搭建

start.spring.io 可视化创建 jdk8

添加依赖: Web+MySQL Driver+Lombok

工程中右键创建maven,下一步创建<name>文件夹的maven工程,并将demo.zip文件夹中的src和pom复制到此文件夹中

后台配置启动端口

springboot——src——resources——application.properties

  1. server.port=9090
  2. spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
  3. spring.datasource.url=jdbc:mysql://localhost:3306/springboot-vue?useUnicode=true
  4. spring.datasource.username=root
  5. spring.datasource.password=rootroot

 

4.后台架构

文件夹名称作用
common插件配置
controller接口 对数据库的操作 前后台数据交互
entity实体类
mapperinterface

·common文件夹

分页插件

安装依赖

com.example.demo-common-MybatisPlusConfig

Mybatis核心功能-分页插件 见官网

结果插件

Result是返回给前台的一个包装类,后台返回给前台一般是一个json。code成功or失败,json定义为T范型,任何数据类型都可以用。

·controller文件夹

一般是controller中引入service,service中引入mapper

·entity文件夹

·mapper文件夹

5.前后台数据交互

axios数据交互封装

  1. cd vue
  2. npm install axios -S

vue - src - utils - request.js 工具类封装

  1. import axios from 'axios'
  2. const request = axios.create({
  3. timeout: 5000
  4. })
  5. // request 拦截器
  6. // 可以自请求发送前对请求做一些处理
  7. // 比如统一加token,对请求参数统一加密
  8. request.interceptors.request.use(config => {
  9. config.headers['Content-Type'] = 'application/json;charset=utf-8';
  10. // config.headers['token'] = user.token; // 设置请求头
  11. return config
  12. }, error => {
  13. return Promise.reject(error)
  14. });
  15. // response 拦截器
  16. // 可以在接口响应后统一处理结果
  17. request.interceptors.response.use(
  18. response => {
  19. let res = response.data;
  20. // 如果是返回的文件
  21. if (response.config.responseType === 'blob') {
  22. return res
  23. }
  24. // 兼容服务端返回的字符串数据
  25. if (typeof res === 'string') {
  26. res = res ? JSON.parse(res) : res
  27. }
  28. return res;
  29. },
  30. error => {
  31. console.log('err' + error) // for debug
  32. return Promise.reject(error)
  33. }
  34. )
  35. export default request

跨域请求

8080->9090 前段->后台

vue->vue.config.js

  1. module.exports={
  2. devServer:{
  3. port:9876,//前段端口改为了9876
  4. proxy:{
  5. '/api':{
  6. target:'http://localhost:9090',//目标访问到9090
  7. changeOrigin:true,
  8. pathRewrite:{
  9. '/api':''
  10. }
  11. }
  12. }
  13. }
  14. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/214389
推荐阅读
相关标签
  

闽ICP备14008679号