You can use the v-model
directive to create two-way data bindings on form input elements and elements with contenteditable
attribute. It automatically picks the correct way to update the element based on the input type.
Example
<form id="demo">
<!-- text -->
<p><input type="text" v-model="msg"> {{msg}}</p>
<!-- checkbox -->
<p><input type="checkbox" v-model="checked"> {{checked ? "yes" : "no"}}</p>
<!-- radio buttons -->
<p>
<input type="radio" name="picked" value="one" v-model="picked">
<input type="radio" name="picked" value="two" v-model="picked">
{{picked}}
</p>
<!-- select -->
<p>
<select v-model="selected">
<option>one</option>
<option>two</option>
</select>
{{selected}}
</p>
<!-- multiple select -->
<p>
<select v-model="multiSelect" multiple>
<option>one</option>
<option>two</option>
<option>three</option>
</select>
{{multiSelect}}
</p>
<p>data: {{$data}}</p>
</form>
new Vue({
el: '#demo',
data: {
msg : 'hi!',
checked : true,
picked : 'one',
selected : 'two',
multiSelect: ['one', 'three']
}
})
Result
{{msg}}
{{checked ? "yes" : "no"}}
{{picked}}
onetwo {{selected}}
onetwothree{{multiSelect}}
data: {{$data}}
<script> new Vue({ el: '#demo', data: { msg : 'hi!', checked : true, picked : 'one', selected : 'two', multiSelect: ['one', 'three'] } }) </script>Next: Computed Properties.