问题:同一个父组件中的兄弟组件间通信
总体思路:
(1)兄弟组件1将数据传递给父组件
(2)父组件将数据传递给兄弟组件2
样例:
父组件parent.vue
<template>
<child1></child1>
<child2 @sendData="getDataFromChild2"></child2>
</template>
1、兄弟组件child2将数据传递给父组件parent
child2.vue中代码:
vue2写法
methods:{
child1SendToFather(){
this.$emit('sendData','111111')
}
}
vue3写法
setup(props,ctx){
fun(){
ctx.emit('sendData','111111')
}
}
2、父组件parent接收传递的数据
parent.vue中代码
<template>
<child1></child1>
<child2 @sendData="getDataFromChild2"></child2>
</template>
getDataFromChild2(data){
//data为从组件child2中传递过来的数据
console.log(data)
}
3、父组件parent.vue将数据传递给子组件child1
parent.vue中代码:
<template>
<child1 :sendDataToChild1="tocChild1Data"></child1>
<child2 @sendData="getDataFromChild2"></child2>
</template>
getDataFromChild2(data){
//data为从组件child2中传递过来的数据
console.log(data)
this.tocChild1Data = data;
}
4、子组件child1接收数据
props: {
//使用props接收从父组件传递的数据tocChild1Data
tocChild1Data:{
type:String
}
}