// data() 에서의 return 은 단방향 데이터 바인딩이다.
// @input 을 통해서 양방향 데이터 바인딩으로 바꿀 수 있다.
// @input 은 input 에 입력이 시작되면 모든 @input 이벤트로 해석된다.

<template>
  <h1>{{ msg }}</h1>
  <input
    type="text"
    :value="msg" 
    @input="handler" />
</template>

<script>
export default {
  data() {
    return {
      msg: 'Hello world!'
    }
  },
  methods: {
    handler(e) {
      console.log(e.target.value)
      this.msg = e.target.value
    }
  }
}
</script>

// 이제 input 에 데이터를 입력하면 화면에서 msg 가 바로바로 반영된다.
// 축소 할 수 있다.
// v-model 사용 시 주의사항
// 한글 입력시에는 한박자 늦게 동작한다.
// 한글을 사용할때는 다음과 같이 사용하면 즉시 적용된다.
<template>
  <h1>{{ msg }}</h1>
  <input
    type="text"
    :value="msg" 
    @input="msg = $event.target.value" />
</template>

<script>
export default {
  data() {
    return {
      msg: 'Hello world!'
    }
  },
}
</script>
// 축소2. v-model
<template>
  <h1>{{ msg }}</h1>
  <input
    type="text"
    v-model="msg" />
</template>

<script>
export default {
  data() {
    return {
      msg: 'Hello world!'
    }
  },
}
</script>