Vue 父组件向子组件传递数据,子组件也需要向父组件传递数据,比如:数组
子组件使用 computed 来获取 prop 值
比如 prop:data
传递的是 数组 data
子组件这样获取 prop
值
computed: {
dataLocal(){
return this.data
}
}
当子组件修改了这个 data 并且需要重新传给 父组件时
就需要使用 $emit
方法调用方法,把值传给父组件
// tempData:修改好的数组数据
this.$emit('setData', [...tempData]) // 直接赋值是不管用的,用 [...Arary] 就可以了,具体去查 ES6
可以直接使用 v-model
在子组件中定义好 prop
props: {
data: {type: Array}
}
并定义 model
规则
model: {
prop: 'data', // 绑定是 prop 'data' 的值
event: 'setData' // $emit 的时候使用的是 ‘setData’ 这个事件名
}
这样,父组件就可以直接在调用 子组件的时候使用
<child v-model='dataFather'/>