//原生的v-model使用
<input type="text" v-model="name">
// 其实是 =>
<input type="text" :value="name" @input="name = $event.target.value">
//的一个语法糖,两个效果一样,vue是一个单向数据流
=====================================================================
//自定义组件中使用v-model:
//父组件中:
<son v-model="name"></son>
//子组件中
<input type="text" :value="value"
@input="$emit('input', $event.target.value)"
>
// 为什么emit派发input这个名字?
export default{
props: {
value: { // 为什么这里要用传入value?
type: String,
default: ''
}
}
}
// 上面两个为什么明白之后,就能搞懂了,不明白的话,看下最上面的第二段代码
// 因为原来的语法就是传入value,和对input的事件监听。
// 如果不想使用value和input这两个固定的,可以在子组件中进行自定义
export default {
model: {
prop: 'num', // 自定义属性名
event: 'addNum' // 自定义事件名
},
props: {
num: {
type: String,
default: ''
},
},
methods: {
// 伪代码 this.$emit('addNum', 'value');
}
}
帮你深入理解Vue中的v-model语法糖
最新推荐文章于 2023-05-04 13:46:55 发布