对于兄弟组件和父子组件的通信想必大家已经很了解了。然而,如果是跨多层父子组件通信的话,甚至两个组件的的关系相差很远,通信起来就不去很方便了,官方推荐使用Vuex来处理这些复杂情况,但在小项目中焉用牛刀。
我们可以中一个空的Vue实例做为集中式的事件中间件。Vue官方解释文档
只需要三步就可以实现两个毫无关系的组件间的通信。我通常将其命名为bus组件
import Vue from "vue";
export default new Vue();
import bus from "../../../../static/js/bus";
mounted() {
bus.$emit('msg','message')
}
import bus from "../../../../static/js/bus";
mounted() {
bus.$on('msg',data => {
console.log('bus',data)
})
}