数据的绑定,无论是使用插值表达式 { {}}
还是 v-text
指令,对于数据间的交互都是单向的,只能将 Vue
实例里定义的值传递给页面,页面数据的任何操作无法传递给 model
可以用 v-model
指令在表单 、
及
元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素
v-model
是语法糖,默认情况下相当于 :value
和 @input
,负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理
v-model
会忽略所有表单元素的value
、checked
、selected
属性的初始值而总是将Vue
实例的数据作为数据来源。你应该通过JavaScript
在组件的data
选项中声明初始值
v-model
在内部为不同的输入元素使用不同的属性并抛出不同的事件:
text
和 textarea
元素使用 value
属性和 input
事件checkbox
和 radio
使用 checked
属性和 change
事件select
字段将 value
作为 prop
并将 change
作为事件
<input type="text" v-model="inputValue" value="Hello Vue">
<h3>{
{inputValue}}h3>
<textarea name="" v-model="textareValue" value="Hello Vue">textarea>
<h3>{
{textareValue}}h3>
el: '#app',
data: function() {
return {
inputValue: '文本框双向绑定',
textareValue: '文本域双向绑定'
}
}
文本框双向绑定是通过动态绑定元素的 value
属性,以及触发文本框的 input
事件来实现的
<input type="text" v-model="inputValue">
<h3>{
{inputValue}}h3>
el: '#app',
data: function() {
return {
inputValue: '文本双向绑定'
}
}
文本域多行文本双向绑定是通过动态绑定元素的 value
属性,以及触发文本域的 input
事件来实现的
在文本区域插值 (
) 并不会生效,应用
v-model
来代替
<textarea v-model="textareaValue">textarea>
<h3>{
{textareaValue}}h3>
el: '#app',
data: function() {
return {
textareaValue: 'Hello Vue'
}
}
复选框双向绑定是通过动态绑定元素的 checked
属性,以及触发复选框的 change
事件来实现的
复选框如果不提供
value
属性,则表示复选框绑定的是checked
属性,提供value
属性,则表示复选框绑定的是value
属性
<input type="checkbox" v-model="checked">
<h3>{
{checked}}h3>
<label for="">篮球label>
<input type="checkbox" v-model="checkboxArr" value="篮球">
<label for="<