此demo是参考某位大佬的demo,我以为他写的不错,便写下来了css
输入 http://www.noobyard.com/tag/http://localhost:8080,回车浏览器自动跳转到http://localhost:8008/login登陆页面。输入用户名、密码,点击登陆功能实现效果以下:html
编程语言:html、css、js 开发工具:Atom 发开框架:vue + axios + router 包管理工具:npm 打包工具:webpack
编程语言:java 开发工具:Eclipse 发开框架:springboot 包管理工具:maven资源库 打包工具:maven
安装node.js并初始化Vue项目 在Vue项目中开发页面头、页面尾公共组件 开发登陆界面组件 开发首页界面组件 网络请求(跨域:由后台实现)、页面路由开发
安装jdk8并配置好环境变量 建立springboot项目 开发登陆控制器 支持跨域
使用webpack将Vue项目打包 将打包的Vue项目集成到springboot项目中 使用maven将springboot打包成jar文件 使用jdk运行jar包来启动demo项目服务,访问地址查看效果
查看文章https://blog.csdn.net/Lucky_Boy_Luck/article/details/96509513,按照步骤操做便可。使用Axios前,先安装它。执行命令:cnpm install --save axios前端
Header.vue页面头代码vue
<template> <div class="header"> 页面头部 </div> </template> <script> export default { name: 'Header' } } </script>
Footer.vue页面尾代码java
<template> <div class="footer"> 页面尾部 </div> </template> <script> export default { name: 'Footer' } </script>
Login.Vue登陆页面代码node
<template> <div class="login"> <Header /> <hr> <div> 用户名:<input type="text" v-model="username" placeholder="请输入用户名" />{{username}}<br> 密码:<input type="password" v-model="password" placeholder="请输入密码" />{{password}}<br> <button @click="login">登陆</button><br> 登陆验证状况:<input type="text" v-model="result" />{{result}} </div> <hr> <Footer /> </div> </template> <script> import Footer from '@/components/commons/Footer' import Header from '@/components/commons/Header' import qs from 'qs' export default { name: 'login', data () { return { username: '', password: '', result: '' } }, components: { Footer, Header }, methods: { login () { if (this.username === '') { alert('用户名不能为空') return } if (this.password === '') { alert('密码不能为空') } var url = 'http://localhost:80/login' console.log(url) this.$axios.post(url, qs.stringify({ username: this.username, password: this.password })) .then(res => { console.log(res) console.log(res.data) if (res.data.data === '登录成功') { this.$router.replace({path: '/index'}) } else { this.result = res.data.data } }) .catch(error => { console.log(error) }) } } } </script>
main.js主入口代码webpack
import Vue from 'vue' import App from './App' import router from './router' import Axios from 'axios' Vue.prototype.$axios = Axios Vue.config.productionTip = false /* eslint-disable no-new */ new Vue({ el: '#app', router, components: { App }, template: '<App/>' })
router/index.js 页面路由代码ios
import Vue from 'vue' import Router from 'vue-router' import Index from '@/components/home/Index' import Login from '@/components/manager/Login' Vue.use(Router) export default new Router({ routes: [ { path: '/', redirect: '/login' }, { path: '/index', name: 'index', component: Index }, { path: '/login', name: 'login', component: Login } ] })
访问地址:http://www.noobyard.com/tag/http://localhost:8080
web
@Controller @CrossOrigin public class SystemController { @RequestMapping(value="/login", method=RequestMethod.POST) @ResponseBody public Map<String, Object> login(String username, String password){ Map<String, Object> map = new HashMap<String, Object>(); if(null != username && null != password) { if("zzc".equalsIgnoreCase(username)) { if("123".equalsIgnoreCase(password)) { map.put("data", "登录成功"); } else { map.put("data", "用户名或者密码错误"); } } else { map.put("data", "用户名或者密码错误"); } } else { map.put("data", "用户名或者密码不能为空"); } return map; } }
application.ymlspring
server: port: 80
前端服务启动,后台服务启动,而后输入用户名和密码
在Vue项目目录项,运行命令:npm run build 会打包,自动生成的打包后的dist目录文件
而后从新启动springboot项目浏览器访问后台服务地址http://localhost:80,会发现页面显示的是就是vue开发的前端页面
经过上面步骤集成先后端完毕,而后把完整的项目打包成jar包后使用jdk命令运行完整项目便可。