//App.vue
<template>
<form>
<div>
<label for="username">id:</label>
<input type="text" id="username">
</div>
<div>
<label for="password"> pw: </label>
<input type="password" id="password">
</div>
</form>
</template>
<button> login </button>
export default{
data: function(){
return{
username:'',
password:'',
}
}
}
<input type="text" id="username" v-model="username">
<input type="password" id="password" v-model="password">
로그인 버튼을 눌렀을 때 username/password 값을 가지고 올 수 있는지 개발자도구 창에서 확인한다.; 버튼 타입이 submit이면 input에서 enter까지 form에서 영향을 받음. (이벤트 버블링 캡쳐링 이해가 안가면 캡틴판교 강사님의 블로그 를 읽어보자)
버튼 누르면 자꾸 새로고침이 되기 때문에 form 에서 이벤트 실행을 위해 v-on:submit="submitForm" 정의 후 데이터 밑에 정의. submitForm: input박스의 값을 이용해서 서버에 보낸다
//template
<form v-on:submit="submitForm">
//script
export default{
methods: {
submitForm: function(){
}
}
methods: {
submitForm: function(event){
console.log(this.username, this.password)
}
}
methods: {
submitForm: function(event){
event.preventDefault();
console.log(this.username, this.password)
}
}
<form v-on:submit.prevent="submitForm">
<script>
import axios from 'axios';
</script>
methods: {
submitForm: function(){
console.log(this.username, this.password);
axios.post();
}
}
var url='https://jsonplaceholder.typicode.com/users';
var data= {
username: this.username,
password: this.password,
}
axios.post(url, data)
axios.post(url, data)
.then( function(response){
console.log(response)
})
.catch(function(error){
console.log(error)
})
네트워크창의 XHR에서도 확인