ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Vue.js 문법 - 폼 입력 바인딩
    Vue/Vue.js 문법 2021. 7. 15. 20:44

     

    단방향 데이터 바인딩(연결)

     

    <template>
      <h1>{{ msg }}</h1>
      <input
        type="text"
        :value="msg" />
    </template>
    <script>
    export default {
      data() {
        return {
          msg: 'Hello world!'
        }
      }
    }
    </script>

     

    코드 이해하기

    - data() 부분에 msg 데이터를 input 요소에 value라는 속성에 연결

    - 추가로 h1 요소에 콘텐트 (content)로도 연결하여 화면에 출력

    - 데이터 부분에서 HTML (template) 방향으로만 흐른다 (연결되어 있다)

    - 이러한 개념을 단방향 데이터 바인딩 이라고 부름

    - 그렇기 때문에 input 요소를 수정하여도, 수정된 내용이 data의 msg 데이터를 갱신하지 않음

     

    양방향 데이터 바인딩

     

    <template>
      <h1>{{ msg }}</h1>
      <input
        type="text"
        :value="msg"
        @input="handler" />
    </template>
    <script>
    export default {
      data() {
        return {
          msg: 'Hello world!'
        }
      },
      methods: {
        handler(event) {
          console.log(event.target.value)
          this.msg = event.target.value
        }
      }
    }
    </script>

     

    코드 이해하기

    - @input 이벤트는 input 요소에 데이터가 입력되면 handler() 동작

    - handler() 는  input 요소에 데이터를 가져와서 msg 데이터를 갱신

    - 갱신된 msg 데이터는 연결된 각각의 HTML 요소에 반영 (반응성)

    - 데이터가 input 요소에 영향을 주고, input 요소를 수정하면 데이터에 영향을 준다

    - 이러한 개념을 방향 데이터 바인딩 이라고 부름

    - input 요소를 수정하면 데이터가 갱신됨

     

    v-model

     

    - vue.js 에서는 v-model 을 통해 양항뱡 데이터 바인딩을 간소화 할 수 있다

    - 한글을 입력하는 경우에는 하나의 글자가 완성되기 전까지 딜레이가 있다

     

    <!--
    <template>
      <h1>{{ msg }}</h1>
      <input
        type="text"
        :value="msg"
        @input="msg = $event.target.value" />
    </template>    
    -->
     
     <template>
      <h1>{{ msg }}</h1>
      <input
        type="text"
        v-model="msg" />
    </template>
    <script>
    export default {
      data() {
        return {
          msg: 'Hello world!'
        }
      }
    }
    </script>

    'Vue > Vue.js 문법' 카테고리의 다른 글

    Vue.js 문법 - 컴포넌트 기초  (0) 2021.07.16
    Vue.js 문법 - v-model 수식어  (0) 2021.07.15
    Vue.js 문법 - 키 수식어  (0) 2021.07.15
    Vue.js 문법 - 이벤트 수식어  (0) 2021.07.15
    Vue.js 문법 - 이벤트 핸들링  (0) 2021.07.14

    댓글

Designed by Tistory.