v-model
VUE提供了v-model指令, 用于在表单类元素上双向绑定事件
input和textarea
可以用于input框,以及textarea等
注意: 所显示的值只依赖于所绑定的数据,不再关心初始化时的插入的value
<input type="text" v-model="message">
输入框里的内容是--{{message}}
data:{
message: ''
}

表单
单选框
1. 单个单选按钮,直接用v-bind绑定一个布尔值,用v-model是不可以的
<input type="radio" v-bind:checked="isChecked">单个单选按钮
data: {
isChecked: true
}
2. 如果是组合使用,就需要v-model来配合value使用,绑定选中的单选框的value值, 所绑定的初始值可以随意给
此处我给所有单选框添加了一样的name, 所以只能选择其中一个, 当v-model绑定的值与value值相同时, 默认选择该选项. 选中的项目改变时, checkValue的值也将改变
<input type="radio" name="checks" value="铁斧头" v-model="checkValue">铁斧头
<input type="radio" name="checks" value="金斧头" v-model="checkValue">金斧头
<input type="radio" name="checks" value="银斧头" v-model="checkValue">银斧头
樵夫选择了---{{checkValue}}
data: {
checkValue: '铁斧头'
}
效果

复选框
1. 单个复选框
直接用定一个布尔值,可以用v-model, 可以用v-bind
<input type="checkbox" v-bind:checked="isChecked">单个复选框用v-bind绑定
<input type="checkbox" v-model="isCheck">单个复选框用v-model绑定
data: { isChecked: true, isCheck:true,}
2.多个复选框
如果是组合使用,就需要v-model来配合value使用,v-model绑定一个数组, 如果绑定的是字符串,则会转化为true。false,与所有绑定的复选框的 checked属性相对应
<input type="checkbox" value="铁斧头" v-model="checks">铁斧头
<input type="checkbox" value="金斧头" v-model="checks">金斧头
<input type="checkbox" value="银斧头" v-model="checks">银斧头
樵夫选择了---{{checks}}
data: {
checks: []
}
绑定字符串(同时选中)

绑定数组

下拉框
1. 如果是单选,所绑定的value值初始化可以为数组,也可以为字符串,有value直接优先匹配一个value值,没有value就匹配一个text值
<select v-model="selected">
<option value="铁斧头">铁斧头</option>
<option value="金斧头">金斧头</option>
<option value="银斧头">银斧头</option>
</select>
樵夫选择了---{{selected}}
data:{selected:''}

2. 如果是多选,就需要v-model来配合value使用,v-model绑定一个数组,与复选框类似
<select v-model="select" multiple>
...
</select>
data:{ select: [] }
多选下拉框和单选下拉框区别不大, 需要在select元素上添加multiple, 多选的时候需要按ctrl键

3. v-model一定是绑定在select标签上
总结:
如果是单选,初始化最好给定字符串,因为v-model此时绑定的是静态字符串或者布尔值 如果是多选,初始化最好给定一个数组
绑定值
单选按钮
只需要用v-bind给单个单选框绑定一个value值,此时,v-model绑定的就是他的value 值
<input type="radio" v-bind:value="value" v-model="checkValue">---{{checkValue}}
data: {
value: '123',
checkValue: true
}
复选框
复选框控制选中和未选中的值, 绑定true-value, false-value属性
<input type="checkbox" v-model="toggle" :true-value="value1" :false-value="value2">
toggle的值是---{{toggle}}
选中---{{toggle===value1}}
未选中---{{toggle===value2}}
data:{
toggle: true,value1: '被选中',
value2: '未被选中'
}

下拉框
在select标签上绑定value值对option并没有影响
修饰符
lazy
v-model默认是在input输入时实时同步输入框的数据,而lazy修饰符,可以使其在失去焦点或者敲回车键之后在更新
number
将输入的字符串转化为number类型
trim
trim自动过滤输入过程中收尾输入的空格
网友评论