v-modelの中身
<input v-model="eventData.title"> // は <input :value="eventData.title" @input="eventData.title = $event.target.value"> // と同じ data(){ return { eventData: { title: "foo" } } }
入力が行われた時(@input)にinputイベントにおける入力値($event.target.value)がプロパティ(eventData.title)に代入され、かつそれがフォーム内の値として表示される
フォーム部分をコンポーネントとして分割する(親のプロパティを使う)
親 子が使うプロパティをv-modelで渡す
<EventTitle v-model="eventData.title"> (= <EventTitle :value="eventData.title" @input="eventData.title = $event">) data(){ return { eventData: { title: "foo" }
子 以下をそのまま書く
<input :value="value" @input="$emit('input', $event.target.value)"> props: ["value"]