示例:
<input v-model="message" placeholder="edit me"> <p>Message is: {{ message }}</p>
v-model
会忽略所有表单元素的初始值,会选择 Vue 实例数据来作为具体的值。
多行文本: <p style="white-space: pre-line;">{{ message }}</p> <textarea v-model="message" placeholder="add multiple lines"></textarea> 复选框: <div id='example-3'> <input type="checkbox" id="jack" value="Jack" v-model="checkedNames"> <label for="jack">Jack</label> <input type="checkbox" id="john" value="John" v-model="checkedNames"> <label for="john">John</label> <span>Checked names: {{ checkedNames }}</span> </div> new Vue({ el: '#example-3', data: { checkedNames: [] } }) 单选按钮: <div id="example-4"> <input type="radio" id="one" value="One" v-model="picked"> <label for="one">One</label> <input type="radio" id="two" value="Two" v-model="picked"> <label for="two">Two</label> <span>Picked: {{ picked }}</span> </div> new Vue({ el: '#example-4', data: { picked: '' } }) 选择列表: <div id="example-5"> <select v-model="selected">//列表选择后即选定关闭列表 <select v-model="selected" multiple>//列表选择后不关闭列表可继续选择 <option disabled value="">请选择</option> <option>A</option> <option>B</option> <option>C</option> </select> <span>Selected: {{ selected }}</span> </div> new Vue({ el: '...', data: { selected: ''//选择结果保存为一个字符串 selected: []//选择结果存为一个数组 } })
值绑定:绑定 value 到 Vue 实例的一个动态属性上,这时可以用 v-bind
实现
复选框: <input type="checkbox" v-model="toggle" v-bind:true-value="a" v-bind:false-value="b" > // 当选中时 vm.toggle === vm.a // 当没有选中时 vm.toggle === vm.b 单选按钮: <input type="radio" v-model="pick" v-bind:value="a"> // 当选中时 vm.pick === vm.a 选择列表的选项: <select v-model="selected"> <option v-bind:value="{ number: 123 }">123</option> </select> // 当选中时 typeof vm.selected // => 'object' vm.selected.number // => 123
修饰符:
.lazy <!-- 在 "change" 而不是 "input" 事件中更新 --> <input v-model.lazy="msg" > .number //将用户的输入值转为 Number 类型 <input v-model.number="age" type="number"> .trim //自动过滤用户输入的首尾空格 <input v-model.trim="msg">