在vue中,通常父子组件通信,我们使用的是props
,但是有的场景,我们需要对父子组件进行双向绑定。这时我们会用到v-model
自定义组件。
官网的解释则是,父组件将值通过v-model
进行绑定,之后子组件通过props
的key
为value
进行接收,通过事件input
触发更改父组件。
当然为了避免子组件内有data,或其他props名为value,所以在当前实例下,有一个model
属性,定义方法如下
model: {
prop: 'checked', // props默认是value
event: 'change' // 事件名默认是input
},
这样在子组件内通过$emit触发定义好的model
事件名更改父组件的值。并且我们通过watch
监听父组件值的更改绑定至子组件。代码如下:
父组件
父组件
子组件
子组件
效果图