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(参数){})  接收

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM