如果没有看过官方的教程或者查过资料,就把这个问题抛给你,你用现有的知识去实现一下,能不能实现呢?其实可以的。如果是我 我会这么做:
假设我自定义的组件叫message-card我需要有一个对象叫obj要传入子组件实现双向绑定的目的,我会这么写:
<message-card :value='obj' @input='setMessage' />
父组件中:
methods:{
setMessage(e) {
this.obj = e.target.value;
}
}
子组件中:
return data(){
newValue: {}
},
props:{
value:{
type:Object,
default()=>{}
},
watch: {
newValue(){
this.$emit('input',this.newValue)
}
}
}
什么意思呢?就是说,我往子组件中传入了一个数据,我又在子组件中监听这个数据把这个数据抛出来了,在父组件又把抛出来的值重新赋值给父组件的对象,这样其实就是实现了双向数据绑定,但是官方给了更简单的写法。
<message-card v-model='obj' />
这样就不用在父组件中在赋一遍值了。