两个兄弟组件分别为aaa.vue和bbb.vue,父组件为index.vue。
aaa.vue:
用uni.$on注册全局事件。
<template>
<view>
<button>我是a,点击b修改数据{{num}}</button>
</view>
</template>
<script>
export default {
name:"aaa",
data() {
return {
num: 0
};
},
created(){
uni.$on('updateNum',num =>{
this.num += num
})
}
}
</script>
<style>
</style>
bbb.vue:
用uni.$emit触发全局事件。
<template>
<view>
<button @click="getNum">我是b组件,修改a中的数据</button>
</view>
</template>
<script>
export default {
name:"bbb",
data() {
return {
};
},
methods:{
getNum(){
uni.$emit('updateNum',10)
}
}
}
</script>
<style>
</style>
index.vue:
<template>
<view class="container">
<aaa></aaa>
<bbb></bbb>
</view>
</template>
<script>
import aaa from "../../components/aaa.vue"
import bbb from "../../components/bbb.vue"
export default {
data() {
return {
}
},
components:{
aaa,
bbb
}
}
</script>
<style>
.container {
padding: 20px;
font-size: 14px;
line-height: 24px;
}
</style>