Vue关于$on和$emit的理解

我们再项目中经常会遇到这么些情况,兄弟组件之间的传值。
比如说一个组件内的按钮触发了兄弟组件的

一.理解$on,$emit

$emit

1、this.$emit('自定义事件名',要传送的数据);
2、触发当前实例上的事件,要传递的数据会传给监听器;

$on

1、VM.$on('事件名',callback) ---callback回调$emit要传送的数据;
2、监听当前实例上自定义事件;

特别注意:$emit$on的事件必须在一个公共的实例上,我们可以使用一个空的 Vue 实例作为中央事件总线。

二.代码示例
main.js中,创建一个空的vue实例作为事件总线,为方便调用并绑定到原型中

Vue.prototype.$player = new Vue();

在music组件中的mounted中注册监听



在app.js中,注册music组件



home中$emit触发监听




你可能感兴趣的:(Vue关于$on和$emit的理解)