1.A组件中
<script>
import Bus from "./bus";
</script>
Bus.$emit("rowClick", this.titleName);
2.创建bus.js文件
import Vue from 'vue'
export default new Vue()
3.A组件中
<script>
import Bus from "./bus";
</script>
Bus.$on("rowClick", (title) => {
console.log(title)
});
//注册的总线事件(Bus)要在组件销毁时(beforeDestroy/destroyed)卸载
//否则会多次挂载,造成触发一次但多个响应的情况
beforeDestroy() {
Bus.$off("rowClick");
},
Vue中 常见的组件通信方式可分为三类
点击查看原文链接
父子
父向子props,子向父events($emit);
通过父链 / 子链也可以通信($parent / $children);
ref 也可以访问组件实例;
provide / inject;
$attrs/$listeners;
兄弟
Bus;
Vuex;
跨级
Bus;
Vuex;
provide / inject、
$attrs / $listeners、
****待继续研究