2018-09-18 13:28:21 631浏览
今天扣丁学堂Java培训老师给大家介绍一下关于SpringBoot与Vue.js整合实践过程中的基本流程及遇到问题解答,Java开发SpringBoot后端;前端使用Vue.js这个轻量、易上手的框架。下面我们一起来看一下吧。
<!-- 下面是我直接从 bootstrap-vue 文档抄下来的模板 --> <template> <div> <b-form @submit="onSubmit" @reset="onReset" v-if="show"> <b-form-group id="exampleInputGroup1" label="Username:" label-for="exampleInput1"> <b-form-input id="exampleInput1" type="text" v-model="form.username" required placeholder="Enter username"> </b-form-input> </b-form-group> <b-form-group id="exampleInputGroup2" label="Password:" label-for="exampleInput2"> <b-form-input id="exampleInput2" type="text" v-model="form.password" required placeholder="Enter password"> </b-form-input> </b-form-group> <b-form-group id="exampleGroup4"> <b-form-checkbox-group v-model="form.checked" id="exampleChecks"> <b-form-checkbox value="me">Check me out</b-form-checkbox> <b-form-checkbox value="that">Check that out</b-form-checkbox> </b-form-checkbox-group> </b-form-group> <b-button type="submit" variant="primary">Submit</b-button> <b-button type="reset" variant="danger">Reset</b-button> </b-form> </div> </template> <script> //... </script>
<template> <div> <h1>Welcome!</h1> </div> </template>
import Vue from 'vue' import Router from 'vue-router' import Login from '@/components/Login.vue' import Information from '@/components/Information.vue' Vue.use(Router) export default new Router({ routes: [ { path: '/', name: 'Login', component: Login }, { path: '/information', name: 'Information', component: Information } ] })
@RestController @RequestMapping("/api") public class LoginController { @RequestMapping(path = "/login", method = RequestMethod.POST) @ResponseBody public String login(@RequestParam String username, @RequestParam String password) { // 简单处理一下,实际开发中肯定是要用到数据库的 if (username.equals("123") && password.equals("123")) { return "successful"; } else { return "failed"; } } }
@Configuration public class CORSConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins(ALL) .allowedMethods(ALL) .allowedHeaders(ALL) .allowCredentials(true); } }
qs.stringify({ 'username': this.form.username, 'password': this.form.password })
// Login.vue <script> export default { data () { return { form: { username: '', password: '', checked: [] }, show: true } }, methods: { onSubmit (evt) { evt.preventDefault(); // 关键就在于要对参数进行处理 axios.post('http://localhost:8088/api/login',qs.stringify({ 'username': this.form.username, 'password': this.form.password })).then((response) => { var status = response.data; if(status === 'successful') { this.$router.push('/information'); } else { alert(response.data.message); } console.log(response); }).catch((error) => { console.log(response); }); } } } </script>
// Information.vue <template> <div> <h1>Welcome!</h1> <div> <b-button @click="getInfo()">Get your information</b-button> <h2 v-if="username !== ''">Your username is: {{ username }}</h2> <h2 v-if="email !== ''">Your email is: {{ email }}</h2> </div> </div> </template> <script>
import axios from 'axios' export default { data () { return { username: '', email: '' }; }, methods: { getInfo () { axios.get('http://localhost:8088/api/information') .then(function(response) { this.username = response.data['username']; this.email = response.data['email']; console.log(response); }).catch(function(error) { console.log(error); }); } } } </script>
typeError: Cannot set property 'username' of undefined
axios.get('http://localhost:8088/api/information') .then((response) => { this.username = response.data['username']; this.email = response.data['email']; console.log(response); }).catch((error) => { console.log(error); });
var vue = this; axios.get('http://localhost:8088/api/information') .then(function (response) { vue.username = response.data['username']; vue.email = response.data['email']; console.log(response); }).catch((error) => { console.log(error); });
以上所述是扣丁学堂Java开发SpringBoot与Vue.js整合基本流程及遇到问题答疑的详细介绍,希望对大家有所帮助,扣丁学堂不仅有专业的Java培训班供大家学习,还有与时俱进的课程体系和大量的Java视频教程让学员免费观看学习,想要学好Java开发的小伙伴快到扣丁学堂来了解详情吧。扣丁学堂Java技术交流群:670348138。
【关注微信公众号获取更多学习资料】