Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定

2020-06-16 06:10:26易采站长站整理

 但在业务中,有时需要绑定一个动态的数据,这时可以用v-bind来实现。

单选按钮:


<div id="app">
<input type="radio" v-model="picked" :value="value">
<label>单选按钮</label>
<p>{{picked}}</p>
<p>{{value}}</p>
</div>

<script>
var app = new Vue({
el: "#app",
data: {
picked: false,
value: 123
}
});
</script>

在选中时,

app.picked===app.value
,值都是123。

复选框:


<div id="app">
<input type="checkbox" v-model="toggle" :true-value="value1" :false-value="value2">
<label>复选框</label>
<p>{{toggle}}</p>
<p>{{value1}}</p>
<p>{{value2}}</p>
</div>

<script>
var app = new Vue({
el: "#app",
data: {
toggle: false,
value1: "a",
value2: "b"
}
});
</script>

 勾选时,

app.toggle===app.value1

 未勾选时,

app.toggle===app.value2

选择列表:


<div id="app">
<select v-model="selected">
<option :value="{number:123}">123</option>
</select>
{{selected.number}}
</div>

<script>
var app = new Vue({
el: "#app",
data: {
selected: ""
}
});
</script>

 当选中时,app.selected是一个Object,所以

app.selected.number===123

6.3 修饰符

与事件的修饰符类似,v-model也有修饰符,用于控制数据同步的时机。

.lazy:

在输入框中,v-model默认是在input事件中同步输入框的数据(除了提示中介绍的中文输入法情况外)。

 使用修饰符.lazy会转变为在change事件中同步,示例代码如下:


<div id="app">
<input type="text" v-model.lazy="message">
<p>{{message}}</p>
</div>

<script>
var app = new Vue({
el: "#app",
data: {
message: ""
}
});
</script>

 这是,message并不是实时改变的,而是在失焦或按回车时才更新。

.number:

使用修饰符.number可以将输入转换为Number类型,否则虽然你输入的是数字,但它的类型其实是String。
 比如在数字输入框时会比较有用,示例代码如下: