vue项目中eventBus总线机制

Vue事件总线(EventBus)、$on、$emit、$off 在之前我们只用过父传子,子传父进行传数据,这时候当组件嵌套比较深或比较复杂的情况,这时候就用到了事件总线 (EventBus) 如何理解事件总线呢,你可以理解为用来传输数据的一条线 一、使用EventBus 1. 创建事件总线 main.js // 创建事件总线 const bus = new Vue() // 把bus挂载到了Vue的原型上, 保证所有的组件都能通过 this.$bus访问到事件总线 Vue.prototype.$bus = bus 2.页面使用 发布事件 - 传... 阅读详情
  1. 使用场景
    vue项目中,某些特殊情况下,我们需要不相关的组件之间通信,这种情况我们可以通过eventBus来解决问题,通过事件的监听和触发来实现通信和参数传递
  2. 封装
    新建eventBus.js文件
let events = {}
export default {
  //事件监听
  on(eventName,handler){
    if (typeof handler === 'function') {
      if (!events[eventName]) {
        events[eventName] = new Set()
      }
      events[eventName].add(handler)
    }
  },
  //事件触发
  emit(eventName,payload){
     if (!events[eventName]) {
        return console.warn(`已触发${eventName}事件,但没有事件监听者,未发生任何改变`)
      }
      for(let func of events[eventName].values()) {
         func(payload)
      }
  },
  //事件取消
  off(eventName,handler){
    if (!handler) {
      return console.warn('取消事件监听必须传入已监听的事件函数')
    }
    events[eventName].delete(handler)
  },
  //所有事件清空
  clear(){
    events = {}
  }
}

挂载到原型或Windows上

import eventBus  from './eventBus.js'
//两种方式二选一

//挂载正在原型上
Vue.prototype.$eventBus = eventBus  
//挂载正在windows上
windows.$eventBus = eventBus  
  1. 使用
//以挂载在Windows上为例
//监听事件
$eventBus.on('testEvent', testFunc)
testFunc(data){
  console.log(data)
  //具体操作...
}
//触发事件
$eventBus.emit('testEvent', {a:1,b:2})

在eventBus中定义的事件如不再使用,最好使用off()方法取消该事件

《java程序设计基础》委托事件模型 委托事件模型 在一个窗口中摆出两个控件:一个是命令按钮;另一个是文本区。当单机命令按钮后,将文本区的字体颜色设置为红色。由于按钮触发动作事件,所以触发按钮便把ActionEvent的对象传递给向它注册的监听者,请他负责处理。 package yuan; import javafx.application.Application; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.event.ActionEvent; / 阅读详情

相关推荐

vue 事件总线的用法(EventBus)

vue事件总线(EventBus)的使用

llj1028的博客 1240

物联网大赛 - Android学习笔记(三)Android 事件处理

学习目标: 了解事件处理概念 监听事件处理模型 事件与事件监听接口 实现事件监听方式 回调事件处理模型 常见的事件回调方法 Handler类功能与用法 Handler更新程序界面 一、监听概念 再用户操作动作时,需要为用户的动作提供响应机制,这种机制就是事件处理 Android提供两套事件处理机制: >基于监听的事件处理 >基于回调的事件处理 二、事件监听处理模型。 >Event Source(事件源),事件源通常是各个组件,比如按钮、图片按钮、...

杨明金的博客 1万+

Spirent TestCenter 3.90吞吐测试全流程详解(附RFC 2544配置避坑指南)

本文详细解析了使用Spirent TestCenter 3.90进行网络吞吐测试的全流程,并提供了符合RFC 2544标准的配置指南与避坑要点。内容涵盖测试环境搭建、核心概念澄清、STC软件配置步骤、结果深度解读以及自动化脚本入门,旨在帮助网络测试工程师精准评估设备性能,规避常见配置陷阱。

weixin_42602368的博客 370

vue组件通信方式之eventBus

父子通信,通常父组件向子组件通过props传值,子组件通过使用$emit向父组件传参,还有诸如 $parent ,$children, $refs 等直接获取组件的方法。兄弟组件,或者没有直接联系的组件之间进行通信时就会比较麻烦,比较常用的就是vuex等状态管理工具。此时,我们还有一个简单的方法那就是vue事件总线(eventBus)绑定前不解绑的话,主要有两方面的问题:1、事件反复触发;2、内存泄漏;$on;$off ;内存泄漏(闭包)

Hello_MrShu的博客 3818

Isaac Sim 使用经验(配置要求,云服务器)

Google Colab及AutoDL都是在docker内运行,其中google colab并不支持docker指令,而依照AutoDL的相关文档,AutoDL并不直接提供docker指令。2. Google Colab/AutoDL 不支持图形化界面,图形渲染等任务,所以没有办法使用Omniverse Streaming进行直播,从而更好的对结果进行展示。对于第一点,或许存在直接手动复现镜像的可能,但是考虑到Isaac Sim/Isaac Lab由于比较新,可能不够稳定,因此还是按照官方文档进行部署。

weixin_44211433的博客 4586

STM32F103C8T6驱动DM542步进电机:从CubeMX配置到按键控制的全流程避坑指南

本文详细介绍了如何使用STM32F103C8T6通过CubeMX配置驱动DM542步进电机的全流程,包括PWM频率计算、GPIO模式选择及按键控制实现。重点解决了常见硬件连接错误、PWM参数配置及加减速算法优化,帮助开发者快速搭建稳定的电机控制系统。

weixin_42741930的博客 307

vue中总线机制(EventBus)

一、EventBus的简介 二、使用方法 第一步:2种方式初始化 第二步:发送事件 第三步:接受事件 第四步:移除事件 三、全局EventBus 四、EventBus的优缺点 一、EventBus的简介 EventBus 又称时间总线 ,理解上来讲 EventBus 机制是通知的概念,EventBus作为所有组件共享的事件中心,既可以发送事件也可以接受事件,所有组件都可以平行的接到到相对应的数据。...

王春燕的博客 1433

OpenCV视频防抖算法实现与优化指南

本文详细解析了如何使用OpenCV实现视频防抖算法。通过特征点检测与光流跟踪估算帧间运动,利用滑动平均平滑运动轨迹,并应用仿射变换重塑视频帧。文章提供了完整的代码实现、参数调优指南及黑边处理等优化技巧,帮助开发者高效处理手持拍摄等场景下的视频抖动问题。

weixin_29062823的博客 339

Uni中使用Vue的EventBus总线机制

首先我们要使用的EventBus事件总线,能够做到兄弟组件,或者不是父子关系的页面达到数据相互传递的效果 一种做法是在main.js中创建事件总线 创建完$EventBus后,就可以直接在页面中使用事件总线的方法来发送和接收事件了 第二种做法:封装事件总线 使用的时候直接引入就可以了 ...

qq_38774121的博客 2303

SAP 中租赁资产的实现需区分经营租赁与融资租赁,核心围绕资产主数据配置、折旧与利息设置、科目分配及业务操作展开

摘要:SAP系统租赁资产管理需区分经营租赁与融资租赁,通过SPRO配置资产主数据、折旧范围、利息计算及科目分配。关键步骤包括:激活折旧范围利息计算(OABZ)、设置租赁资产类别(OAYZ)、维护总账科目(AO90)及创建租赁资产主数据(AS01)。业务操作涵盖资产资本化(ABZON)、折旧利息过账(AFAB)、租金支付(F-53)及终止处理(ABUMN)。核心配置要点在于准确设置租赁类型、利率参数和科目联动,确保系统自动计算折旧与利息并生成正确凭证。

金牌架构师 1070

Android开发工程师面试问题与参考答案

这是一份Android开发工程师职位面试指南,主要针对自研OS开发岗位。岗位要求3年以上独立开发经验,熟悉Android平台UI设计、四大组件和Java基础。面试问题覆盖五大核心领域:基础知识、开发经验、技术深度、问题解决和性能优化。文章提供了典型面试问题及专业参考答案,帮助应聘者准备关键技术点,如多线程处理、HashMap与ConcurrentHashMap区别、Handler机制等。同时建议应聘者结合项目经验展示优化能力,并注意公司提供完善的薪酬福利和团队文化。

郑伟强dev的专栏 892

vue中总线机制(EventBus) EventBus作为所有组件共享的事件中心

EventBus 又称时间总线 ,理解上来讲 EventBus 机制是通知的概念,EventBus作为所有组件共享的事件中心,既可以发送事件也可以接受事件,所有组件都可以平行的接到到相对应的数据。使用 EventBus.$emit(‘事件名称’,数据)进行发送数据。在点击页面的点击事件里面写:前面是事件,后面是值。在需要事件调用的页面:前面是事件,后面是值。页面需要引入EventBus文件。页面需要引入EventBus文件。

weixin_45865992的博客 448

从业务角色到工作台:一步步创建 SAP Fiori Launchpad Space 与 Page

SAP S/4HANA Launchpad 配置优化指南:从业务角色出发构建高效工作台 本文针对S/4HANA项目中用户普遍反映的"入口难找"问题,提出基于Spaces和Pages的系统化解决方案。通过"以工作岗位为中心"的设计理念,将Launchpad信息架构重构为:一个业务角色对应一个Space,每个Space包含1-5个Page,Page内按任务划分2-5个Section,每个Section放置3-7个Tiles。文章详细阐述了从Business Role入手配

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 223

vue项目 - 使用eventBus 设置某一功能模块的显示和隐藏

vue项目组件使用的比较多,封装的组件, 然而有些功能模块某些页面可能用不到,则可以通过v-if设置显示隐藏, 如果组件嵌套过深,一层一层设置比较麻烦,可以使用eventbus 去设置显示于隐藏 步骤 1----->设置总线机制 // 一般设置在man.js中 import store from './store' Vue.prototype.eventBus = new Vue() 步骤2 ---->设置底边栏的页面 <div v-if="is_show">需要隐藏的模块&l

weixin_55042716的博客 706

【python数据挖掘课程】二十八.基于LDA和pyLDAvis的主题挖掘及可视化分析

这是《Python数据挖掘课程》系列文章,前面很多文章都讲解了数据挖掘、机器学习,这篇文章主要讲解LDA和pyLDAvis算法,同时讲解如何读取CSV文本内容进行主题挖掘及可视化展示。文章比较基础,希望对你有所帮助,提供些思路,也是自己教学的内容。推荐大家购买作者新书《Python网络数据爬取及分析从入门到精通(分析篇)》,如果文章中存在错误或不足之处,还请海涵。 目录: 一.显示结果及安装 二.LDA主题挖掘 三.pyLDAvis可视化分析 四.小结

杨秀璋的专栏 1万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

uni-app中使用Vue的EventBus总线机制

在main.js中创建事件总线 在页面中注册事件 this.$EventBus.$on('eventName', function(){}); 在页面中调用事件 this.$EventBus.$emit('eventName'); 在页面中移除事件 this.$EventBus.$off('eventName');

qq_25800235的博客 4861

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

vue组件之间的通信

一、父子组件通信 props 和 $emit props和$emit使我们日常开发中最常用的组件通信方式。 父组件通过绑定属性来向子组件传递数据,子组件通过props属性来获取对用的数据; 子组件则是通过派发$emit事件将数据传递到父组件中 //父组件 <child :meg="msg" @updateParentMsg="updateParentMsg" /> data(){ return{ msg:"我是父组件" } }, methods:

Anything2207294253的博客 220

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

vue不同组件传值的多种方式

index.vue页面 <template> <div> <child-one :dataOne="dataOne" @recevice="onRecevice"></child-one> <child-two></child-two> <child-three></child-three> <child-four></child-four> &

weixin_38992765的博客 984

用Vue撸一个『A-Z字母滑动检索菜单』

最近用vue仿写途牛旅行APP 遇到了这样的城市列表选择页面,花了些时间,用Vue实现了一下并让它体验的接近 安卓/IOS 原生组件 很多地方都会有这样的侧边栏字母列表菜单,可以滑动实现内容列表联动。 比如手机通讯录,城市切换页面都会用到 实现效果 在线体验:hx-dl.top/a-z_menu/#/… 技术点 better-scroll 实现城市列表滑动 evnetBus总线机制实现兄弟组件...

weixin_34167819的博客 942

vue中组件传值的几种方式全面版本

面试时候经常问的一个vue的题学习了一下,总结了几个常用的,应该是覆盖了大部分的使用场景。 1.父传子(props) 父组件向子组件传值用到自定义属性,在子组件中使用props自定义属性,父组件通过v-bind将需要传递的数据绑定到子组件上,这样子组件props里的自定义属性就可以直接使用了,和data里return的数据一样可以直接使用。 //简单演示一下 //子组件 export default { props:{ value:String } } console.log(this.value)

apple_52295201的博客 410

java 委托 事件_Java中委托事件模型 (转)

Java中委托事件模型委托事件模型 —— Delegated Event Model或许每个软件从业者都有从学习控制台应用程序到学习可视化编程的转变过程,控制台应用程序的优点在于可以方便的练习某个语言的语法和开发习惯(如.net和java),而可视化编程的学习又可以非常方便开发出各类人机对话界面(HMI)。可视化编程或许是一个初学者开始对软件感兴趣的开始,也可能是一个软件学习的里程碑点,因为我们可...

weixin_36310662的博客 709

Java 实现(观察者模式)委托+事件

基于观察者模式中解除耦合的需要,用Java实现C#中的委托与事件(举例:猫和老鼠)

m0_51506743的博客 1832

JAVA中的委托事件模型

Java自JDK1.1之后采用委托事件模型(delegation event model)。委托事件模型是进行图形用户界面设计的核心,在了解该模型之前,先介绍几个基本概念。 1、 事件 事件(event)是指一个状态的改变,或者一个活动的发生。 例如,用户点击窗口关闭按钮,发生窗口关闭事件;用户单击一个按钮,产生动作事件。 2、 事件源 发生事件的组件称为事件源。 例如,用户单击窗口关闭按钮是在窗口上发生的事件,所以窗口为事件源;用户单击按钮产生 的动作事件是在按钮上发生的,所以按钮为

Java追求者的博客 2228

java委托事件模型_JAVA授权事件模型讲解(原创)

JAVA的授权事件模型包含三个概念:事件源,事件,事件监听器。一,事件源:一个产生事件的对象。当这个对象的内部状态改变时,事件就会产生。一个事件源必须注册一个事件监听器已使监听器能够可以接受一个特定时间的通知。每一种事件都有它特定的注册方法,通用形式为:addTypeListener(TypeListener e)二,事件:一个事件是描述了一个事件源的状态改变的对象。他可能通过一个人与图形用户接口...

weixin_32632831的博客 384

java事件机制(订阅/消费模型)/观察者模式 : EventObject,EventListener和Source

参考: java事件机制(订阅/消费模型) 使用Java标准的java.util.EventListener实现观察者-发布者设计模式 java的事件机制一般包括三个部分:EventObject,EventListener和Source。 简单示例demo: 1.EventObject : 事件 java.util.EventObject是事件状态对象的基类,它封装了事件源对象以及和事件相关的信息。 所有java的事件类都需要继承该类 import java.util.EventObject; publ

火星男孩的分享空间 3656
上一篇: 弹性布局
下一篇: webAPP遇到的iOS兼容性问题小结(持续更新中)
codezha
博客等级 码龄10年 28粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值