如何快速搭建SpringBoot+Vue前后端分离的开发环境

本文介绍了如何快速搭建SpringBoot2.4.2与Vue2的开发环境,包括创建Vue项目、简化项目文件、运行项目,以及创建SpringBoot项目和编写测试接口。接着,文章展示了使用axios进行接口调用,配置Vue的代理解决跨域问题,并提供了相关配置的详细步骤。最后,提醒读者可以参考其他文章深入学习跨域代理和对作者的支持。
唠嗑部分

今天我们来说一说,如何快速搭建SpringBoot+Vue前后端分离的开发环境

需要前置环境nodejs,请自行安装(傻瓜式安装)

SpringBoot采用2.4.2版本,Vue采用Vue2版本

言归正传

创建Vue项目

1、安装vue

npm install -g @vue/cli

2、检查vue是否安装成功

vue -V

image-20230522150121143

3、创建项目

vue create 项目名

注意:项目名不能有大写字母、中文、特殊符号

4、选择模板和包管理器,等待项目创建完毕

image-20230522150256451

5、精简项目文件

App.vue

image-20230522150908656

HelloWorld.vue

image-20230522150934477

6、运行项目

npm run serve

image-20230522151118011

控制台没有报错,ok

创建SpringBoot项目

1、创建可参考文章:如何创建SpringBoot项目(idea版本)

2、编写测试接口

@PostMapping("/test/getUserList")
public CommonResult getUserList(){
    CommonResult r = CommonResult.success(null);
    List<User> list = new ArrayList<>();
    list.add(User.builder()
             .id(UUID.randomUUID().toString())
             .username("全栈小白")
             .createDatetime(LocalDateTime.now())
             .build());

    list.add(User.builder()
             .id(UUID.randomUUID().toString())
             .username("全栈小陈")
             .createDatetime(LocalDateTime.now())
             .build());
    r.setData(list);
    return r;
}

接口联调

1、安装axios库

yarn add axios

2、在HelloWorld.vue中引入并请求接口

<template>
  <div class="hello">
    <button @click="getUserList">获取用户列表</button>
  </div>
</template>

<script>
import axios from "axios";

export default {
  name: 'HelloWorld',
  data(){
    return {
      userList:[]
    }
  },
  methods:{
    getUserList(){
      axios({
        url: '/api/test/getUserList',
        method: 'post'
      }).then(res => {
        const resp = res.data;
        console.log(resp)
      }).catch(err => console.log(err))
    }
  }
}
</script>

3、配置代理,解决跨域问题,修改vue.config.js

const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
  lintOnSave:false,     // 禁用eslint
  transpileDependencies: true,
  devServer:{
    host: '127.0.0.1',
    port: 3000,
    open: true,
    proxy: {
      '/api': {
        target: 'http://127.0.0.1:8888',
        pathRewrite: { '^/api': '' }, // 重写路径
        ws: true, // 用于支持websocket
        secure: false,
        changeOrigin: true // 控制请求头中的host,设置服务器看到的请求来源
      }
    }
  }
})

4、测试

image-20230522153101455

结语

1、有关于跨域代理的配置,可参考文章:【一文带你解决跨域问题】

2、制作不易,一键三连再走吧,您的支持永远是我最大的动力!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈小白.

感谢老板,祝老板今年发大财!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值