Vue中的事件总线:$bus

在vue中,我们父子之间通信简单明了:

父组件向子组件传值: props,

在父组件中,用   :要传递过去的名字 = “   要传递的值   ”。

在子组件中 使用props:{}接受即可

 

子组件向父组件传值:$emit. 通过自定义方法,

在子组件中,我们使用this.$emit('方法名',参数),向父组件传值

在父组件中,我们使用子组件传递过来的自定义方法 :    @自定义方法名 = “ 自己随便写一个方法名,不需要跟参数,在下面使用该方法时,再写到()中 ”

 

 

以上,是关于vue中父子组件通信的方法,

那么非父子组件之间的通信,又是怎么样的呢?

其实也很简单,有两种方法:

1.通过Vuex, Vuex中的state.是可以共用的属性。通过调用Vue.state就可以获取到,非父子组件之间通信就可以解决

2.通过$bus, 事件总线

   2.1 :  首先呢。我们需要去main.js 中  让$bus可以使用: =======》     Vue.prototype.$bus = new Vue()

   2.2 :     然后,我们就可以使用 this.$bus.$emit(’事件名称‘,参数)  发送

   2.3 :     最后,我们可以通过 this.$bus.$on('事件名称',function(参数){})  接收

这样。我们就可以通过事件总线获取到非父子组件通信

posted @ 2020-05-15 17:21  大云之下  阅读(3214)  评论(0编辑  收藏  举报
大云之下