$emit和$on(bus.$on)

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

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

$emit和$on的事件必须在一个公共的实例上,才能够触发。
这里需要强调的一点是:on和emit事件必须是在一个公共的实例上才能触发。
一定要记住你们可以使用一个空的 Vue 实例作为中央事件总线。别一个在二次元,一个在三次元。

image.png

`created() {

    bus.$on('collapse-content', msg => {
        this.collapse = msg;
    });

    // 只有在标签页列表里的页面才使用keep-alive,即关闭标签之后就不保存到内存中了。
    bus.$on('tags', msg => {
        let arr = [];
        for (let i = 0, len = msg.length; i < len; i++) {
            msg[i].name && arr.push(msg[i].name);
        }
        this.tagsList = arr;
    });
}`


你可能感兴趣的:(vue.js)