当前位置: 首页 > news >正文

资讯网站 整体ui自己在线制作logo免费图片

资讯网站 整体ui,自己在线制作logo免费图片,在重庆找做网站的技术人员,网站定制开发哪家做的好1. eventBus 使用说明 eventBus 是一个事件总线(Event Bus)实例,用于在不同的组件或模块之间进行通信。它提供了 on、off 和 emit 方法来订阅、取消订阅和触发事件。以下是 eventBus 的详细使用方法: 2. 主要方法 on(eventName…

1. eventBus 使用说明

eventBus 是一个事件总线(Event Bus)实例,用于在不同的组件或模块之间进行通信。它提供了 on、off 和 emit 方法来订阅、取消订阅和触发事件。以下是 eventBus 的详细使用方法:

2. 主要方法

on(eventName: string, callback: Callback): void
功能:订阅一个事件。
参数:
eventName:事件名称(字符串)。
callback:事件触发时执行的回调函数。

off(eventName: string, callback: Callback): void
功能:取消订阅一个事件。
参数:
eventName:事件名称(字符串)。
callback:要取消订阅的回调函数。

emit(eventName: string, …args: any[]): void
功能:触发一个事件,并传递参数给所有订阅该事件的回调函数。
参数:
eventName:事件名称(字符串)。
…args:传递给回调函数的参数。

3. 使用

在项目中创建eventbus文件夹,里面创建index.tsx

type Callback = (...args: any[]) => voidclass EventBus {private events: Map<string, Callback[]>constructor() {this.events = new Map()}on(eventName: string, callback: Callback): void {if (!this.events.has(eventName)) {this.events.set(eventName, [])}this.events.get(eventName)?.push(callback)}off(eventName: string, callback: Callback): void {if (this.events.has(eventName)) {const callbacks: any = this.events.get(eventName)const index = callbacks.indexOf(callback)if (index !== -1) {callbacks.splice(index, 1)}}}emit(eventName: string, ...args: any[]): void {if (this.events.has(eventName)) {this.events.get(eventName)?.forEach(callback => {callback(...args)})}}
}const eventBus = new EventBus()
export default eventBus

订阅事件
在组件 A 中订阅一个事件:

import React, { useEffect } from 'react';
import eventBus from '@/packages/eventbus';const ComponentA = () => {useEffect(() => {const handleEvent = (data: any) => {console.log('ComponentA received event:', data);};eventBus.on('myEvent', handleEvent);// 清理订阅return () => {eventBus.off('myEvent', handleEvent);};}, []);return <div>Component A</div>;
};export default ComponentA;

触发事件
在组件 B 中触发该事件:

import React from 'react';
import eventBus from '@/packages/eventbus';const ComponentB = () => {const triggerEvent = () => {eventBus.emit('myEvent', { message: 'Hello from Component B!' });};return (<div>Component B<button onClick={triggerEvent}>Trigger Event</button></div>);
};export default ComponentB;
http://www.dtcms.com/a/465605.html

相关文章:

  • 网站源码下载免费一 网站建设管理基本情况
  • Linux内核架构浅谈8-Linux内核与UNIX的传承:设计思想与特性差异
  • C# 写入CSV文件和导出CSV文件总结
  • 基于NVIDIA ORIN+FPGA+AI自动驾驶硬件在环注入测试
  • 怎么帮网站做支付接口王妃说此生不复相见
  • 虚幻基础:NPC制作
  • 智能眼镜行业腾飞在即,苹果/微美全息锚定“AR+AI眼镜融合”之路抢滩市场!
  • vue中慎用v-if和v-show导致不好排查无预期的错误和异常
  • Rokid JSAR 技术开发全指南:基于 Web 技术栈的 AR 开发实战
  • 顶尖高校读研经验-读研生活篇
  • 例点估算网站开发项目工作量推荐做任务网站
  • 【RH850F1KMS1】一文了解瑞萨MCU的芯片引脚标识名称
  • MPLS技术详解1:原理、架构与转发机制详析
  • WPF自定义控件之环形进度条
  • 深度学习入门(一)——从神经元到损失函数,一步步理解前向传播(下)
  • php网站怎么做伪静态织梦模板网站好吗
  • 电脑所有可用的网络接口
  • 宁波网站设计推广培训班呼和浩特做网站的
  • TensorFlow深度学习实战(40)——图神经网络(GNN)
  • 水库安全保障:单北斗GNSS变形监测系统的应用与维护探讨
  • Spring中Bean 的生命周期
  • 【C++】智能指针介绍
  • 利用腾讯混元大模型搭建Cherry Studio自有知识库,打造“智能第二大脑”
  • 咸阳做网站的公司有哪些电商卖货平台有哪些
  • 浏阳网站建设卷云网络做网页的it网站
  • 广东省省考备考(第一百二十天10.10)——资料分析、判断推理(强化训练)
  • 常用的C++压测框架
  • 强化学习之父 Richard Sutton :大模型是死路一条
  • 【YOLO 模型入门】(1)一文读懂 YOLO:从核心概念到检测原理
  • redis消息队列