// main.js
Vue.prototype.$EventBus = new Vue()
//x.vue
this.$eventBus.$emit("justTest", true);
//y.vue
mounted(){
this.$eventBus.$on("justTest", res=>{
console.log(res,'this.$eventBus.$on("justTest"!!!!!!!!!!!!!!!!!')
});
}
//x.vue
beforeRouteLeave(to, from, next) {
console.log('触发 beforeRouteLeave!!!!!')
this.$eventBus.$off("justTest");
}
y.vue的mounted相当于一个开关的开,y.vue第一次渲染完毕把开关打开,再进入x.vue才会打印justTest"!!!!!!!!!!!!!!!!!,离开x.vue把开关关掉,再进入x.vue不会再次打印justTest"!!!!!!!!!!!!!!!!!(除非再进入y.vue把开关打开)。