Muscardinus

v-model 본문

FrontEnd/Vue

v-model

Muscardinus 2021. 12. 28. 02:01
728x90

데이터의 양방향 바인딩을 위해서 우리는 v-model을 사용한다.

양방향 바인딩을 쉽게 표현하자면, html에서의 data 변화가 있으면 js에도 반영이되고 반대로 js에서 data의 변화가 있으면 html에서도 해당하는 data에서 변화가 있는 것이다.

const vm = Vue.createApp({
  data() {
    return {
      firstName: 'John',
      lastName: 'Doe',
    };
  },
  methods: {
    fullName() {
      return `${this.firstName} ${this.lastName.toUpperCase()}`;
    },
  },
}).mount('#app');
<!DOCTYPE html>
<html>
  <head>
    <title>VueJS Course</title>
    <link rel="stylesheet" type="text/css" href="main.css" />
  </head>
  <body>
    <div id="app" v-cloak>
      <p>{{ fullName() }}</p>
      <hr />
      <label>First Name</label>
      <input type="text" v-model="firstName" />
      <label>Last Name</label>
      <input type="text" v-model="lastName" />
    </div>

    <script src="https://unpkg.com/vue@next"></script>
    <script src="app.js"></script>
  </body>
</html>

html의 input에서 볼 수 있듯이, v-model안에 바라보고 있는 expression을 넣어서 사용할 수 있다. 

그러면, input의 값 변화에 따라서 값이 바뀌게 된다.

이렇게 쉽게 할 수 있는 이유는 vue에서 reactivity기법을 사용해서이다.

reactivity를 사용하여 vue는 data의 변화를 감지하여, 변화가 있을 때 마다 rendering을 다시한다.

728x90

'FrontEnd > Vue' 카테고리의 다른 글

v-on  (0) 2021.12.28
v-bind  (0) 2021.12.28
v-cloak  (0) 2021.12.28
Method 사용  (0) 2021.12.28
data 받기  (0) 2021.12.17
Comments