组件上的 v-model
当需要维护组件内外数据的同步时,可以在组件上使用 v-model 指令。
父组件传值:
html
<!-- 父组件传值 -->
<my-counter v-model:number="count"></my-counter>子组件在 emits 节点声明自定义事件,格式为 update:xxx ,调用 $emit 触发自定义事件:
js
export default {
props: ['number'],
emits: ['update:number'],
methods: {
add() {
this.$emit('update:number', this.number++)
}
}
}注意,在 vue3 中 props 属性同样是只读的,上面 this.number++ 并没有修改 number 的值。
其实通过 v-bind 传值和监听自定义事件的方式能实现和 v-model 相同的效果
MaoJiuBlog