41 사용자 지정 inputs
source: categories/study/vue-experiance/vue-experiance_9-31.md
41. 사용자 지정 inputs
컴포넌트에서 v-model 사용
사용자 지정 이벤트를 사용하여 v-model
과 함께 작동하는 사용자 지정 입력을 생성할 수도 있습니다.
<input v-model="searchText">
위와 아래는 같은 작업을 수행합니다.
<input
v-bind:value="searchText"
v-on:input="searchText = $event.target.value"
>
컴포넌트에서 사용될 때는 v-model
은 다음과 같은 역할을 수행합니다.
<custom-input
v-bind:value="searchText"
v-on:input="searchText = $event"
></custom-input>
커스텀 컴포넌트의 위와 같은 동작을 위해서 컴포넌트 안에 있는 input
요소는 반드시 다음과 같은 역할을 수행해야됩니다.
value
속성을value
prop에 바인드해야됩니다.input
태그에서 커스텀input
이벤트를 새 값과 함께 emit해야됩니다.
아래는 예시입니다.
Vue.component('custom-input', {
props: ['value'],
template: `
<input
v-bind:value="value"
v-on:input="$emit('input', $event.target.value)"
>
`
})
위와 같이 작성하면 커스텀 컴포넌트에서 v-model
이 완벽하게 작동할 것입니다.
<custom-input v-model="searchText"></custom-input>
지금은 이것이 사용자 컴포넌트 이벤트에 대해 알아야할 전부입니다.
그러나 이 페이지를 다 읽고 내용에 익숙해지면 나중에 다시 돌아와 사용자 정의 이베늩에 대한 전체 가이드를 읽는 것이 좋습니다.