您的位置:首页 > Web前端 > Vue.js

vue不使用vuex的前提下怎么进行非父子组件通信

2019-03-28 16:46 369 查看

借助中央事件总线实现非父子组件通信

创建Bus.js文件

import Vue from 'vue';

export default new Vue;

Bus.js文件一般都是放在assets文件下面

组件1中

<button @click='sendMsg'>传送信息给组件2</button>

import Bus from '@/assets/js/bus';

export default {
methods:{
sendMsg(){
Bus.$emit('send','我是组件1');
}
}
}

点击按钮时,中央事件总线通过

$emit
发送一个send事件

组件2中

import Bus from '@/assets/js/bus';

export default {
created(){
Bus.$on('send',(val)=>{
console.log(val);
})
}
}

中央事件总线通过

$on
监听组件1中发送的send事件,
用一个回调函数接受传过来的参数

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: