본문 바로가기

Vue.js

v-model

공식문서 v-model

<input v-model="inputText"/>


new Vue({
	data: {
    	inputText: ''
    }
})

 

사용자의 입력을 받는 UI 요소에 v-model 속성 사용하면 

입력 값이 자동으로 뷰 데이터 속성에 연결된다

 

 

 

v-model 동작 방식

v-bind + v-on  기능의 조합으로 동작

 

위의 코드와 같은 기능을 하는 코드이다.

<input v-bind:value="inputText" v-on:input="updateInput"/>

new Vue({
	data: {
    	inputText: ''
    },
    methods: {
    	updateInput: function(event) {
        	var updateText = event.target.value;
            this.inputText = updateText;
        }
    }
})

 

- v-bind 속성

: 뷰 인스턴스의 데이터 속성을 해당 HTML 요소에 연결할 때 사용한다

 

- v-on 속성

: 해당 HTML 요소의 이벤트를 뷰 인스턴스의 로직과 연결할 때 사용한다

 

- 사용자 이벤트에 의해 실행된 뷰 메서드(methods) 함수의 첫 번째 인자에는 해당 이벤트(event) 가 들어온다

 

 

📌 HTML 입력 요소에 따라 'v-model' 속성이 다르게 구성된다

input 태그 : value / input

checkbox 태그 : checked / change

selet 태그 : value / change

 

 

 

현업에서 vue3 를 쓰면서 v-model이 편하고 자연스레 계속 써왔는데 

커스텀해야할 때 v-model 로 안먹는걸 알고서 공식문서를 뒤져보기 시작했다

v-model 의 한계점때문에 자연스레 v-bind + v-on 을 연결해서 사용해보니 직접 이벤트와 값을 조하배서 바인딩이 가능해져서 원하는 기능을 구현할 수 있었다.

당연시 생각했던 코드의 기능을 깊이있게 공부해야 겠다고 느꼈다. 이렇게 기본적인 것도 처음엔 기능이 안먹어서 많이 고생했는데 돌이켜보면 그런 과정이 있어 처음 vue3 를 배웠을 때 알던 기능을 구현된 기능에 초점에만 초점을 맞춰서 생각을 했던 부분을 구현하는 방식과 원리를 잘 알아야 한다는 걸 다시금 새삼 깨달았다. 

역시나 기본이 중요하다.

728x90
반응형

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

[Vue.js] BroadcastChannel  (0) 2024.03.06
[Vue.js] Options API vs Composition API  (0) 2023.02.12
[Vue.js] 컴포넌트에 대해  (0) 2023.02.09
[Vue.js] 뷰 컴포넌트  (0) 2022.05.01
[Vue.js] Vue Instance  (0) 2022.05.01