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

JavaScript设计模式之发布-订阅模式

发布者和订阅者完全解耦(通过消息队列进行通信)
在这里插入图片描述
适用场景:功能模块间进行通信,如Vue的事件总线。
ES6实现方式:

class eventManager {constructor() {this.eventList = {};}on(eventName, callback) {if (this.eventList[eventName]) {this.eventList[eventName].push(callback);} else {this.eventList[eventName] = [callback];}}fire(eventName, data) {if (eventName in this.eventList &&Array.isArray(this.eventList[eventName])) {this.eventList[eventName].forEach(callback => callback(data));} else {console.log(`${eventName} is not a resgisted event`);}}off(eventName, callback) {if (callback) {if (eventName in this.eventList &&Array.isArray(this.eventList[eventName])) {let index = this.eventList[eventName].indexOf(callback);index > -1 && this.eventList[eventName].splice(index, 1);} else {console.log(`${eventName} has not been listen`);}} else {delete this.eventList[eventName]}}
}
let eventManager1 = new eventManager();
eventManager1.on("event", data => {console.log(data);
});
eventManager1.fire("event", "haha");
eventManager1.off("event");

相关文章:

JavaScript设计模式之发布-订阅模式

发布者和订阅者完全解耦(通过消息队列进行通信) 适用场景:功能模块间进行通信,如Vue的事件总线。 ES6实现方式: class eventManager {constructor() {this.eventList {};}on(eventName, callback) {if (this.eventL…...

mysql---索引

概要 索引:排序的列表,列表当中存储的是索引的值和包含这个值的数据所在的行的物理地址 作用:加快查找速度 注:索引要在创建表时尽量创建完全,后期添加影响变动大。 索引也需要占用磁盘空间,innodb表数据…...

微信小程序——简易复制文本

在微信小程序中,可以使用wx.setClipboardData()方法来实现复制文本内容的功能。以下是一个示例代码: // 点击按钮触发复制事件 copyText: function() {var that this;wx.setClipboardData({data: 要复制的文本内容,success: function(res) {wx.showToa…...

【51单片机】矩阵键盘与定时器(学习笔记)

一、矩阵键盘 1、矩阵键盘概述 在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式 采用逐行或逐列的“扫描”,就可以读出任何位置按键的状态 2、扫描的概念 数码管扫描(输出扫描):…...

vue 中使用async await

在程序中使用同步的方式来加载异步的数据的方式: async function() {let promise new Promise((resolve, reject) > {resolve(res);}).then(re > {return re; });await promise; }...

C语言学习之内存区域的划分

内存区域的划分:32位OS可以访问的虚拟内存空间为0~4G;一、内核空间:3~4G;二、用户空间0~3G;栈区:局部变量在栈区分配、由OS负责分配和回收堆区:由程序员手动分配(malloc函数)和回收(free函数);静…...

Unity Animator cpu性能测试

测试案例: 场景中共有4000个物体,挂在40个animtor 上,每个Animator控制100个物体的动画。 使用工具: Unity Profiler. Unity 版本: unity 2019.4.40f1 测试环境: 手机 测试过程: 没有挂…...

数据结构 - 顺序表ArrayList

目录 实现一个通用的顺序表 总结 包装类 装箱 / 装包 和 拆箱 / 拆包 ArrayList 与 顺序表 ArrayList基础功能演示 add 和 addAll ,添加元素功能 ArrayList的扩容机制 来看一下,下面的代码是否存在缺陷 模拟实现 ArrayList add 功能 add ind…...

【Echarts】玫瑰饼图数据交互

在学习echarts玫瑰饼图的过程中,了解到三种数据交互的方法,如果对您也有帮助,不胜欣喜。 一、官网教程 https://echarts.apache.org/examples/zh/editor.html?cpie-roseType-simple (该教程数据在代码中) import *…...

k8s、pod

Pod k8s中的port【端口:30000-32767】 port :为Service 在 cluster IP 上暴露的端口 targetPort:对应容器映射在 pod 端口上 nodePort:可以通过k8s 集群外部使用 node IP node port 访问Service containerPort:容…...

一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium

大家好,我是python222小锋老师。前段时间卷了一套 Python3零基础7天入门实战 以及1小时掌握Python操作Mysql数据库之pymysql模块技术 近日锋哥又卷了一波课程,python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium,文字版视频版。1…...

睿趣科技:想知道开抖音小店的成本

随着互联网的发展,越来越多的人开始尝试通过开设网店来创业。抖音作为目前最受欢迎的短视频平台之一,也提供了开店的功能。那么,开一家抖音小店需要多少成本呢? 首先,我们需要了解的是,抖音小店的开店费用是…...

python项目部署代码汇总:目标检测类、人体姿态类

一、AI健身计数 1、图片视频检测 (cpu运行): 注:左上角为fps,左下角为次数统计。 1.哑铃弯举:12,14,16 详细环境安装教程:pyqt5AI健身CPU实时检测mediapipe 可视化界面…...

力扣每日一题92:反转链表||

题目描述&#xff1a; 给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 示例 1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], left 2, right 4 输…...

Vue+OpenLayers从入门到实战进阶案例汇总目录,兼容OpenLayers7和OpenLayers8

本篇作为《VueOpenLayers入门教程》和《VueOpenLayers实战进阶案例》所有文章的二合一汇总目录&#xff0c;方便查找。 本专栏源码是由OpenLayers结合Vue框架编写。 本专栏从Vue搭建脚手架到如何引入OpenLayers依赖的每一步详细新手教程&#xff0c;再到通过各种入门案例和综合…...

C#中使用LINQtoSQL管理SQL数据库之添加、修改和删除

目录 一、添加数据 二、修改数据 三、删除数据 四、添加、修改和删除的源码 五、生成效果 1.VS和SSMS原始记录 2.删除ID2和5的记录 3.添加记录ID2、5和8 4.修改ID3和ID4的记录 用LINQtoSQL管理SQL Server数据库时&#xff0c;主要有添加、修改和删除3种操作。 项目中创…...

飞致云及其旗下1Panel项目进入2023年第三季度最具成长性开源初创榜单

2023年10月26日&#xff0c;知名风险投资机构Runa Capital发布2023年第三季度ROSS指数&#xff08;Runa Open Source Startup Index&#xff09;。ROSS指数按季度汇总并公布在代码托管平台GitHub上年化增长率&#xff08;AGR&#xff09;排名前二十位的开源初创公司和开源项目。…...

Maven实战-私服搭建详细教程

Maven实战-私服搭建详细教程 1、为什么需要私服 首先我们为什么需要搭建Maven私服&#xff0c;一切技术来源于解决需求&#xff0c;因为我们在实际开发中&#xff0c;当我们研发出来一个 公共组件&#xff0c;为了能让别的业务开发组用上&#xff0c;则搭建一个远程仓库很有…...

uniapp-自定义表格,右边操作栏固定

uniapp-自定义表格&#xff0c;右边操作栏固定 在网上找了一些&#xff0c;没找到特别合适的&#xff0c;收集了一下其他人的思路&#xff0c;基本都是让左边可以滚动&#xff0c;右边定位&#xff0c;自己也尝试写了一下&#xff0c;有点样式上的小bug&#xff0c;还在尝试修…...

基于Electron27+React18+ArcoDesign客户端后台管理EXE

基于electron27.xreact18搭建电脑端exe后台管理系统模板 electron-react-admin 基于electron27整合vite.jsreact18搭建桌面端后台管理程序解决方案。 前几天有分享electron27react18创建跨平台应用实践&#xff0c;大家感兴趣可以去看看。 https://blog.csdn.net/yanxinyun1990…...

从官方demo到真实项目:手把手教你定制uniapp uni-card卡片的样式与交互

从官方demo到真实项目&#xff1a;手把手教你定制uniapp uni-card卡片的样式与交互 在移动应用开发中&#xff0c;卡片式设计已经成为展示内容的黄金标准。uni-app的uni-card组件为开发者提供了一个快速构建卡片式界面的基础工具&#xff0c;但实际项目中&#xff0c;我们往往需…...

DINOv3特征工程实战:构建可解释、可增量、可部署的CV数据科学工作流

1. 项目概述&#xff1a;这不是又一个ViT教程&#xff0c;而是一份面向实战的数据科学家操作手册“DINOv3 Playbook”这个标题里藏着三个关键信号&#xff1a;DINOv3是Meta最新发布的视觉自监督模型&#xff0c;Playbook不是论文摘要&#xff0c;也不是API文档&#xff0c;而是…...

Legba性能优化技巧:10个实用方法提升暴力破解效率 [特殊字符]

Legba性能优化技巧&#xff1a;10个实用方法提升暴力破解效率 &#x1f680; 【免费下载链接】legba The fastest and more comprehensive multiprotocol credentials bruteforcer / password sprayer and enumerator. &#x1f977; 项目地址: https://gitcode.com/gh_mirro…...

巴别鸟vs坚果云:企业云盘同步机制踩坑与实战配置

干企业网盘这行&#xff0c;最怕听到用户说"同步慢"。我们2019年上线第一版云盘时&#xff0c;同步1GB的CAD图纸包要40分钟&#xff0c;用户骂完就跑。踩了三年坑才知道&#xff0c;"能同步"和"同步好用"根本是两回事。 本文从踩坑实录加配置实战…...

TensorFlow数据增强Pipeline:从固定顺序到条件驱动的工业级重构

1. 为什么“写死顺序”的增强 pipeline 在真实项目中总是卡壳&#xff1f;你有没有遇到过这种场景&#xff1a;模型在验证集上指标涨得不错&#xff0c;一到线上推理就崩得稀里哗啦&#xff1f;或者训练时 loss 曲线看着很稳&#xff0c;但模型对稍微偏移一点的拍摄角度、光照变…...

层次聚类实战:从距离选择到树形切割的业务可解释路径

1. 这不是“调个sklearn就能跑”的聚类——为什么 hierarchical clustering 值得你花两小时真正搞懂Hierarchical clustering&#xff08;层次聚类&#xff09;这个词&#xff0c;听起来像教科书里一个安静的章节&#xff0c;不如 K-means 那样高频出现在面试题里&#xff0c;也…...

AI设计泳装,效率能翻几倍?

炎夏未至&#xff0c;泳装行业的备战硝烟却已弥漫。设计师灵感枯竭、打版反复修改、样衣成本高企……每一个痛点都像一座大山&#xff0c;压得品牌方喘不过气。面对Z世代瞬息万变的审美&#xff0c;“快”与“准”成了决胜关键。北京先智先行科技有限公司&#xff0c;正携旗下“…...

【限时公开】盐印相风格Prompt工程黑箱:3类被官方隐藏的--stylize权重阈值,97%用户从未触发过第3级胶片响应

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;盐印相风格Prompt工程的视觉本质解构 盐印相&#xff08;Salted Paper Print&#xff09;作为19世纪早期摄影工艺的代表&#xff0c;其视觉特征——柔和的颗粒质感、低对比度过渡、泛暖棕褐基调与微妙的纸基纤…...

TV Bro:终极智能电视浏览器解决方案 - 让大屏上网变得简单快速

TV Bro&#xff1a;终极智能电视浏览器解决方案 - 让大屏上网变得简单快速 【免费下载链接】tv-bro Simple web browser for android optimized to use with TV remote 项目地址: https://gitcode.com/gh_mirrors/tv/tv-bro 您是否曾经对着智能电视的浏览器感到沮丧&…...

2026毕业答辩PPT模板实测:三个平台的真实体验与避坑建议

又到毕业答辩季&#xff0c;不少同学论文写完了&#xff0c;却被PPT卡住&#xff1a;排版乱、配色杂、结构不清&#xff0c;明明内容扎实&#xff0c;呈现效果却大打折扣。作为经常接触办公工具的博主&#xff0c;我实测了几个常见的PPT模板与制作平台&#xff0c;重点针对本科…...