作用
- v-model 指令本质上是一个语法糖,可以在表单 、元素上创建双向数据绑定,它会根据控件类型自动选取正确的方法来更新元素。
<input v-model="value" />等同于
<input :value="value" $input="value= $event.target.value" /><br />
类型
input
<input v-model="message" ><p>Message is: {{ message }}<p>textarea
<textarea v-model="message" ></textarea><p style="white-space: pre-line;">{{ message }}</p>单选
<label>one<input type="radio" value="One" v-model="picked"></label>new Vue({data: {picked: ''}})
多选
<label>Jack<input type="checkbox" value="Jack" v-model="checkedNames"></label><label>John<input type="checkbox" value="John" v-model="checkedNames"></label>new Vue({data: {checkedNames: []}})
选择框
<select v-model="selected"><option v-for="option in options" :value="option.value" key="option.value">{{ option.text }}</option></select><span>Selected: {{ selected }}</span>new Vue({el: '...',data: {selected: 'A',options: [{ text: 'One', value: 'A' },{ text: 'Two', value: 'B' },{ text: 'Three', value: 'C' }]}})
form 表单
<form @submit.prevent="onSubmit"><input type="text" v-model="user.name"><input type="password" v-model="user.password"><button type="submit"></button></form><script>export default {data(){return { user:{name:"",password:""} }}methods:{onSubmit(){ console.log(this.user) }}}</script>
自定义组件的 v - model
//MyInput.vue<template><div><input :value="value" @input="$emit("input", $event.target.value);" /> //触发 input 事件</div></template><script>export default {props: { //接受外部属性value: {type: String,},},};</script>//App.vueimport MyInput from './MyInput.vue'<template><div>{{value}}<MyInput v-model:value /></div></template><script>export default {data(){return {value:''}}}</script>
修饰符
.lazy
-
.number
-
.trim
自动过滤用户输入的首尾空白字符
