Form 입력 바인딩(Form Input Bindings)
폼을 처리할 때, 값 바인딩을 수동으로 연결하고 이벤트 리스너를 변경하는 것을
v-model 디렉티브를 사용하여 단순화 할 수 있습니다.
<input
:value="text"
@input="event => text = event.target.value">
<!-- v-model을 사용하여 훨씬 간편 -->
<input v-model="text">
또한 v-model은 <textarea> 및 <select> 요소에도 사용가능하며,
<input type="checkbox">과 <input type="radio"> 경우, checked 속성과 change 이벤트를 사용.
<select>는 value를 속성으로 사용하고 change를 이벤트로 사용.
# 텍스트 (Text)
<script>
export default{
data(){
return{
message:''
}
}
}
</script>
<template>
<h2>텍스트</h2>
<!-- <input type="text" :value="message" @input="event=>message=event.target.value"> -->
<!-- 위 코드 단축 -->
<input v-model="message">
<p>메세지 :{{ message }}</p>
</template>
# 여러 줄 텍스트 (Multiline text)
<textarea> 내부에 이중 중괄호 문법은 작동하지 않으므로 v-model을 사용해야 합니다.
<script>
export default{
data(){
return{
multipleMsg:''
}
}
}
</script>
<h2>여러 줄 텍스트</h2>
<span>여러 줄 메세지:</span>
<p style="white-space: pre-line;">{{ multipleMsg }}</p>
<textarea v-model="multipleMsg" placeholder="여러 줄을 추가해보세요"></textarea>
# 체크박스 (Checkbox)
<script>
export default{
data(){
return{
checked:true,
checkedNames: []
}
}
}
</script>
<h2>체크박스</h2>
<input type="checkbox" id="checkbox" v-model="checked" />
<label for="checkbox">{{ checked }}</label>
<!-- 기존 값을 지우고 자동으로 true 만 출력 -->
<div>체크된 이름: {{ checkedNames }}</div>
<input type="checkbox" id="jack" value="젝" v-model="checkedNames">
<label for="jack">젝</label>
<input type="checkbox" id="john" value="존" v-model="checkedNames">
<label for="john">존</label>
<input type="checkbox" id="mike" value="마이크" v-model="checkedNames">
<label for="mike">마이크</label>
# 라디오 (Radio)
<script>
export default{
data(){
return{
picked :'하나',
}
}
}
</script>
<h2>라디오</h2>
<div>선택한 것: {{ picked }}</div>
<input type="radio" id="one" value="하나" v-model="picked" />
<label for="one">하나</label>
<input type="radio" id="two" value="둘" v-model="picked" />
<label for="two">둘</label>
# 셀렉트 (Select)
<script>
export default{
data(){
return{
selected :''
}
}
}
</script>
<h2>셀렉트</h2>
<div>선택됨: {{ selected }}</div>
<select v-model="selected">
<!-- vue에서 자동으로 value 넣어줌(대신, 텍스트와 value가 일치할 때) -->
<option disabled value="">다음 중 하나를 선택하세요</option>
<option>가</option>
<option>나</option>
<option>다</option>
</select>
# 다중 셀렉트 (Multiple Select)
<script>
export default{
data(){
return{
selected: '1',
options: [
{ text: '하나', value: '1' },
{ text: '둘', value: '2' },
{ text: '셋', value: '3' }
]
}
}
}
</script>
<h2>셀렉트</h2>
<div>선택됨: {{ selected }}</div>
<select v-model="selected">
<option v-for="option in options" :value="option.value" :key="option">
{{ option.text }}
</option>
</select>
<div>선택됨: {{ selected }}</div>
'Vue.js' 카테고리의 다른 글
[Vue.js] Vue 이벤트 핸들링 (Event Handling) (0) | 2023.10.26 |
---|---|
[Vue.js] Vue 리스트 렌더링 (List Rendering) (1) | 2023.10.26 |
[Vue.js] Vue 조건부 렌더링 (Conditional Rendering) (0) | 2023.10.26 |
[Vue.js] Vue 클래스와 스타일 바인딩 (Class and Style Bindings) (1) | 2023.10.26 |
[Vue.js] Vue 계산된 속성 (Computed Properties) (0) | 2023.10.26 |