iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue中的总线机制(EventBus)解析
  • 156
分享到

vue中的总线机制(EventBus)解析

vue总线机制vue中EventBusvue总线机制EventBus 2022-11-13 18:11:57 156人浏览 安东尼
摘要

目录一、EventBus的简介二、使用方法第一步:2种方式初始化第二步:发送事件第三步:接受事件第四步:移除事件三、全局EventBus1、注册,在main.js中2、在组件中使用&

一、EventBus的简介

EventBus 又称时间总线 ,理解上来讲 EventBus 机制是通知的概念,EventBus作为所有组件共享的事件中心,既可以发送事件也可以接受事件,所有组件都可以平行的接到到相对应的数据。

二、使用方法

第一步:2种方式初始化

项目中使用事件总线时,需要初始化一条总线,初始化的方式有两种

第一种:通过 .js 文件将总线作为模块化导入

// EventBus.js
import Vue from 'vue'
export defalut new Vue()

第二种:通过 prototype 将总线注册为全局总线,直接在main.js中初始化以下代码(推荐使用)

//main.js
 
Vue.prototype.bus = new Vue();
new Vue({
  render: h => h(App)
    ...
}).$mount('#app');

第二步:发送事件

在组件中引入总线文件 ,使用 EventBus.$emit(‘事件名称’,数据)进行发送数据

//导航栏组件中
//点击事件发生时发布一个事件
this.bus.$emit('even-name',args1, arg2 , ...)
 
//这里我们可以把点击导航的相关信息携带出去

第三步:接受事件

在组件中引入总线文件 ,使用 EventBus.$on(‘emit事件名’,callback(payload1...))进行接受事件

在一个组件中某事件如果只监听一次的话,可以使用 EventBus.$once('事件名称',callBack(payload1...));

//路由显示页面中
this.bus.$on('event-name', (...args) => {
    //根据参数来进行路由跳转
})

第四步:移除事件

EventBus.$off('事件名', callback),只移除这个回调的监听器。
EventBus.$off('事件名'),移除该事件所有的监听器。
EventBus.$off(), 移除所有的事件监听器,注意不需要添加任何参数。
EventBus.$off('XXXXX', {}) // 移除指定事件
EventBus.$off('XXXXX') // 移除应用内所有对此事件的监听
EventBus.$off() // 移除应用内所有事件的监听

三、全局EventBus

1、注册,在main.js中

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

2、在组件中使用 

this.$bus.$on("sendMessage" , (msg) => {
    _this.message = msg
})
this.$bus.$emit("sendMessage" , "这是从D组件中传递到兄弟组件的内容")

四、EventBus的优缺点

缺点

  • vue作为单页面应用,如果在某一个页面刷新了之后,与之相关的EventBus会被移除。
  • 如果业务有反复操作的页面,EventBus在监听的时候就会触发很多次,也是一个非常大的隐患。这时候我们就需要好好处理EventBus在项目中的关系。通常会用到,在vue页面销毁时,同时移除EventBus事件监听。
  • 由于是都使用一个Vue实例,所以容易出现重复触发的情景,两个页面都定义了同一个事件名,并且没有用$off销毁(常出现在路由切换时)。

优点

  • 解决了多层组件之间繁琐的事件传播。
  • 使用原理十分简单,代码量少。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: vue中的总线机制(EventBus)解析

本文链接: https://www.lsjlt.com/news/169301.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue中的总线机制(EventBus)解析
    目录一、EventBus的简介二、使用方法第一步:2种方式初始化第二步:发送事件第三步:接受事件第四步:移除事件三、全局EventBus1、注册,在main.js中2、在组件中使用&...
    99+
    2022-11-13
    vue总线机制 vue中EventBus vue总线机制EventBus
  • Vue中事件总线(eventBus)的深入详解及使用
    目录1. 简介2. 使用安装及引入在组件中使用补充:移除监听事件总结1. 简介 Vue 组件中常见的有:父子组件通信、兄弟组件通信。而父子组件通信就很简单,父组件会通过 props ...
    99+
    2024-04-02
  • vue篇之事件总线EventBus使用示例详解
    目录正文父子组件通讯原则EventBus的简介如何使用EventBus初始化发送事件接收事件移除事件监听者全局EventBus创建全局EventBus总结正文 许多现代JavaScr...
    99+
    2024-04-02
  • Vue eventBus事件总线封装后再用的方式
    目录前言空vue实例构建的事件总线简单的方式复杂又简单的方式总结前言 现在的项目中是不是在使用 eventbus 的时候,还有很多人都是直接创建一个vue 实例直接使用的,哪里需要哪...
    99+
    2024-04-02
  • Flutter EventBus事件总线的应用详解
    目录前言EventBus的简介EventBus的实际应用总结前言 flutter项目中,有许多可以实现跨组件通讯的方案,其中包括InheritedWidget,Notificatio...
    99+
    2024-04-02
  • Java高级-解析Java中的多线程机制(转)
    Java高级-解析Java中的多线程机制(转)[@more@]进程与应用程序的区别进程(Process)是最初定义在Unix等多用户、多任务操作系统环境下用于表示应用程序在内存环境中基本执行单元的概念。以Unix操作系统为例,进程是Unix...
    99+
    2023-06-03
  • 解析Java的多线程机制(1)(转)
    解析Java的多线程机制(1)(转)[@more@]进程与应用程序的区别    进程(Process)是最初定义在Unix等多用户、多任务操作系统环境下用于表示应用程序在内存环境中基本执行单元的概念。以Unix操作系统为例,进程是Unix操...
    99+
    2023-06-03
  • 如何解析Linux驱动中的platform总线
    如何解析Linux驱动中的platform总线,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、platform 总线简介1.1、Linux 驱动的分离和分层思...
    99+
    2023-06-22
  • vue中事件机制原理的示例分析
    这篇文章主要介绍了vue中事件机制原理的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。常见的事件机制demo都会包含在这段代码中:&...
    99+
    2024-04-02
  • Vue中使用和移除总线Bus的注意事项详解
    目录初始化并封装发送事件接收事件移除事件监听实际使用正确测试效果错误测试效果初始化并封装 在main.js中对bus进行初始化, Bus是一个不具备 DOM 的组件,它具有的仅仅只是...
    99+
    2023-05-18
    Vue使用总线Bus Vue移除总线Bus
  • PHP中的隐式转换机制解析
    PHP中的隐式转换机制解析 在PHP编程中,隐式转换是指在不显式指定类型转换的情况下,PHP自动将一个数据类型转换为另一个数据类型的过程。隐式转换机制在编程中非常常见,但也容易造成一些...
    99+
    2024-03-09
    机制 php 隐式转换
  • 解析PHP中Exception异常机制
    异常的基本使用 当异常被抛出时,其后的代码不会继续执行,PHP 会尝试查找匹配的 "catch" 代码块。 如果异常没有被捕获,而且又没用使用 set_exception_handl...
    99+
    2024-04-02
  • Vue组件中事件总线和消息发布订阅的示例分析
    小编给大家分享一下Vue组件中事件总线和消息发布订阅的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!简介主要介绍事件总线的定义和编写方法和Vue是如何实现...
    99+
    2023-06-29
  • 如何解析MySQL线程池内部实现机制
    本篇文章为大家展示了如何解析MySQL线程池内部实现机制,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。摘要在MySQL中,线程池指的是用来管理处理MySQL客户端连...
    99+
    2024-04-02
  • vue@click与@click.native,及vue事件机制的使用分析
    目录@click与@click.native及vue事件机制点击事件@click 失效@click与@click.native及vue事件机制 vue维护了自己的事件机制。 所以就有...
    99+
    2024-04-02
  • 深入解析NumPy中的Broadcasting广播机制
    前言 在吴恩达老师的深度学习专项课程中,老师有提到NumPy中的广播机制,同时那一周的测验也有涉及到广播机制的题目。那么,到底什么是NumPy中的广播机制? 官方文档 接下来到了看官...
    99+
    2024-04-02
  • 深入解析Golang中的互斥锁机制
    Golang中锁的实现机制详解 在多线程编程中,为了保证共享资源的安全性,我们经常需要使用锁。锁的作用是用来确保在同一时间只有一个线程可以访问共享资源,从而避免数据竞争导致的错误。在Golang中,提供了一些...
    99+
    2024-01-24
    (lock)
  • vue中axios拦截器token刷新机制的示例分析
    这篇文章主要为大家展示了“vue中axios拦截器token刷新机制的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue中axios拦截器token刷...
    99+
    2024-04-02
  • Java 多线程同步 锁机制与synchronized深入解析
    打个比方:一个object就像一个大房子,大门永远打开。房子里有很多房间(也就是方法)。这些房间有上锁的(synchronized方法), 和不上锁之分(普通方法)。房门口放着一把钥...
    99+
    2022-11-15
    Java 多线程同步 锁机制
  • 深入解析MySQL中的各种锁机制
    MySQL 各种锁详解一、引言在并发访问中,数据库需要使用锁来保护数据的一致性和完整性。MySQL 提供了多种类型的锁,包括共享锁、排他锁、意向共享锁、意向排他锁等。本文将使用具体的代码示例介绍并解析这些锁的使用方式和特点。二、共享锁(Sh...
    99+
    2023-12-21
    MySQL - 事务 - 行锁 - 表锁
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作