2018-09-18 13:28:21 662浏览
今天扣丁学堂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。
【关注微信公众号获取更多学习资料】