在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(参数){}) 接收
这样。我们就可以通过事件总线获取到非父子组件通信