기본 사용법
v-model
디렉티브를 사용하여 폼 input과 textarea 엘리먼트에 양방향 데이터 바인딩을 생성할 수 있다. 입력 유형에 따라 엘리먼트를 업데이트 하는 올바른 방법을 자동으로 선택한다.
약간 이상하지만 v-model
은 기본적으로 사용자 입력 이벤트에 대한 데이터를 업데이트하는 “syntax sugar”이며 일부 경우에 특별한 주의를 해야한다.
v-model
은 모든 form 엘리먼트의 초기value
와checked
그리고selected
속성을 무시해야한다.항상 Vue 인스턴스 데이터를 원본 소스로 취급한다. 컴포넌트의
data
옵션 안에 있는 JavaScript에서 초기값을 선언해야한다.
# 예제
값 바인딩하기
라디오, 체크박스 및 셀렉트 옵션의 경우, v-model
바인딩 값은 보통 정적인 문자열(또는 체크 박스의 boolean) 이다.
그러나 때로 값을 Vue 인스턴스에 동적 속성에 바인딩 해야할 수 있다. v-bind
를 사용할 수 있다. v-bind
를 사용하면 입력 값을 문자열이 아닌 값에 바인딩 할 수도 있다.
예제 :
true-value
와false-value
속성은 폼 전송시 체크되지 않은 박스를 포함하지 않기 때문에 입력의value
속성에 영향을 미치지 않는다. 두 값 중 하나가 폼을 통해 전송 되려면 (예 : ‘예’ 또는 ‘아니요’) 라디오를 대신 사용하라.
수식어
# .lazy
기본적으로, v-model
은 각 입력 이벤트 후 입력과 데이터를 동기화 한다. (단 앞에서 설명한 IME 구성은 제외.) .lazy
수식어를 추가하여 change
이벤트 이후에 동기화 할 수 있다.
# .number
사용자 입력이 자동으로 숫자로 형변환 되기를 원하면, v-model
이 관리하는 input에 number
수식어를 추가하면 된다.
type="number"
를 사용하는 경우에도 HTML 입력 엘리먼트의 값은 항상 문자열을 반환하기 때문에 이것은 종종 유용하게 사용할 수 있다.
# .trim
v-model
이 관리하는 input을 자동으로 trim 하기 원하면, trim
수정자를 추가하면 된다.