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

mitt 依赖库详解

一、概述

mitt 是一个极其轻量级的 JavaScript 事件发射器库,实现了发布-订阅模式。该模式允许对象间松散耦合,一个对象(发布者)可以发布事件,而其他对象(订阅者)可以监听这些事件并作出响应。适用于浏览器和 Node.js 环境。

二、安装

npm install mitt

三、基本使用

1. 引入 mitt

import mitt from "mitt";

2. 创建事件发射器实例

const emitter = mitt();

3. 订阅事件

使用 on 方法来订阅事件,该方法接收两个参数:事件名称和回调函数。当指定事件被触发时,回调函数将被执行。

// 订阅名为 'message' 的事件
emitter.on("message", (data) => {
  console.log("Received message:", data);
});

4. 发布事件

使用 emit 方法来发布事件,该方法接收事件名称作为第一个参数,后续可选参数会传递给订阅该事件的回调函数。

// 发布 'message' 事件,并传递数据
emitter.emit("message", "Hello, World!");

5. 取消订阅

使用 off 方法取消订阅事件,需要传入事件名称和要取消的回调函数引用。

// 定义回调函数
const messageHandler = (data) => {
  console.log("Received message:", data);
};

// 订阅事件
emitter.on("message", messageHandler);

// 取消订阅
emitter.off("message", messageHandler);

// 此时再发布事件,已取消的回调函数不会执行
emitter.emit("message", "This message won't trigger the handler.");

四、高级用法

1. 监听所有事件

mitt 允许监听所有事件,使用特殊的 '*' 作为事件名称。当任何事件被触发时,该回调函数都会执行,并会接收到事件名称和传递的数据。

emitter.on("*", (eventName, data) => {
  console.log(`Event ${eventName} was triggered with data:`, data);
});
emitter.emit("userLoggedIn", { username: "john_doe" });

2. 清除所有订阅

使用 all.clear() 方法可以清除所有事件的所有订阅。

emitter.all.clear();
// 之后发布事件不会触发任何回调
emitter.emit("message", "No handlers will receive this.");

相关文章:

  • 安徽省考计算机专业科目2025(持续更新)
  • SpringCloud—概述—01
  • 人工智能之数学基础:正交矩阵
  • React封装通用Form组件,类型转换、命名控件样式隔离、支持表单验证、位置自定义、自定义布局、提示信息info等功能。未采用二次封装调整灵活,包含使用文档
  • xxx **5. 物理安全** 详细解读
  • 新能源汽车能量管理:开启绿色出行新动力
  • 常见的 Git 命令
  • UV,纹理,材质,对象
  • Python----数据分析(Matplotlib四:Figure的用法,创建Figure对象,常用的Figure对象的方法)
  • MES机联网4:文档资料
  • MySQL中的脏读与幻读:概念、影响与解决方案
  • 进程模型2-进程优先级
  • 类和对象:
  • kafka消息中间件的rebalance机制
  • 介绍一下Qt中的事件过滤
  • Array and string offset access syntax with curly braces is deprecated
  • 《探秘课程蒸馏体系“三阶训练法”:解锁知识层级递进式迁移的密码》
  • ESP32 UART select解析json数据,上位机控制LED灯实验
  • 如何提取图片文字
  • 高性能算法NGO!北方苍鹰优化算法(Northern Goshawk Optimization,NGO)
  • wordpress弹窗评论/做seo前景怎么样
  • 上海网站开发培训/今日最新抗疫数据
  • 汕头网站设计开发/百度云链接
  • 社交网站开发语言/厦门seo小谢
  • 网站开发员/如何网络推广
  • 网站建设 添加本地视频教程/seo实战