简易使用Vue中的中央事件总线(eventBus)

本文介绍了在小型Vue项目中使用事件总线(eventBus)作为组件通信的一种方式,详细阐述了如何创建全局eventBus,以及如何避免因组件销毁未注销事件导致的重复执行问题。通过预定义事件类型和添加事件链管理,提高了代码的可维护性和错误检查能力。
摘要由CSDN通过智能技术生成

前言

正如我们所知Vue中组件的通信场景很多, 什么跨多级父子通信, 兄弟通信等等。各种各样的解决方法网上方法都有以及多得飞起, 我就不复制黏贴, 省点ATP。在Vue生态中已经有很好的方案解决各种疑难杂症的通信问题, 针对中大型项目, 首选Vuex (用过都说好),但是如果是小型项目使用Vue的eventBus, 是一个不错的选择。我们接下来简单说下Vue的事件总线的使用和一些常见的问题。

使用方法

Vue的实例就是一个事件总线:
import Vue from 'vue';
var vm = new Vue({
    mounted () {
        ## 此时就可以监听一个自定义事件event1
        this.$on('event1', (data) => {
            consolo.log(data);
        }); 
    },
    methods: {
        trigger () {
            this.$emit('event1', '猴赛雷~');
        }
    }
});
vm.trigger(); ## 输出: 猴赛雷~

看得出eventBus的使用就是在一个组件内通过 o n 一 个 事 件 , 在 一 些 操 作 下 on一个事件, 在一些操作下 on,emit事件, 这个看起来跟订阅发布是一回事。
但是这里的eventBus是局部的, 只能在这个组件内用, 如果在一个父组件A监听了事件, 在B子组件去emit, 是没有反应的,
因为子组件B

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值