v-model: 绑定值
by edith_tang
HTML
<div id="app">
<!-- 单选按钮,使用v-model绑定值 -->
<!-- 选中时,app.picked === app.value,也就是123 -->
<input type="radio" v-model="picked" :value="value">
<label>单选按钮</label>
<p>
{{ picked }}
{{ value }}
</p>
<hr>
<!-- 复选框,使用v-model绑定值 -->
<!-- 选中时,app.toggle是true-value的值;未选中时,app.toggle是false-value的值 -->
<input
type="checkbox"
v-model="toggle"
:true-value="value1"
:false-value="value2">
<label>复选框</label>
<p>
{{ toggle }}
</p>
<p>
{{ value1 }}
</p>
<p>
{{ value2 }}
</p>
<hr>
<!--
选中时,app.selected是一个Object,所以app.selected.number === 123;
-->
<select v-model="selected">
<option :value="{ number: 123 }">123</option>
</select>
{{ selected }}
{{ selected.number }}
<hr>
<!--
在输入框中,`v-model`默认是在`input`事件中同步输入框的数据(除了特别说明过的中文输入法比较特殊外),使用修饰符`.lazy`会转变为在 `change` 事件中同步。以下面的代码作为范例,也就是会按下`ENTER`键或输入框失去焦点时,才会同步数据。
-->
<input type="text" v-model.lazy="msg">
<p>
{{ msg }}
</p>
<hr>
<!--
使用修饰符`.number`可以将输入转换为`Number`类型。这是考虑到即便是需要输入数字的输入框,输入内容绑定的数据也仍然是String类型,那利用这个修饰符,就能立即转换为Number数据类型。
-->
<input type="text" v-model.number="num" placeholder="请输入数字">
<p>
{{ num }}
</p>
<hr>
<!--
使用修饰符`.trim`可以去除输入内容的首尾空格。
-->
<input type="text" placeholder="请输入文字" v-model="trimMsg">
<p>
{{ trimMsg }}
</p>
</div>
JavaScript
var app = new Vue({
el: '#app',
data: {
picked: false,
value: 123,
// toggle在书中的例子中默认是个布尔值,但是如果是布尔值,一开始就会显示是false了,我不知道是不是有别的说法,还是就是可以让它的初始值就是未选中状态时的值
toggle: 'no',
value1: 'yes',
value2: 'no',
selected: '',
msg: '',
num: '',
trimMsg: ''
}
})