Vue EventBus 事件总线机制源码解析
在 Vue 应用中,Event Bus 是一种常用的跨组件通信方案。我们可以把它想象成一个全局的'管道',两端连接着不同的组件,任何一个组件都可以通过这个管道发送或接收消息。本质上,这只是一个独立的 Vue 实例,利用其内置的 $on、$off 和 $emit 方法来实现功能。
我们先看一个基础的使用示例。
<script src="./vue.js"></script>
<div id="app">
<child-comp-1></child-comp-1>
<child-comp-2></child-comp-2>
</div>
<script>
var eventBus = new Vue();
Vue.component('child-comp-1', {
template: "<div></div>",
mounted: function () {
eventBus.$on("event", function(value){
console.log("child-comp-1 receive event: " + value);
});
}
});
Vue.component('child-comp-2', {
template: "<div></div>",
mounted: function () {
eventBus.$emit("event", );
}
});
app = ({
:
});

