iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >JavaScript怎么利用发布订阅模式编写事件监听函数
  • 791
分享到

JavaScript怎么利用发布订阅模式编写事件监听函数

2023-07-06 01:07:18 791人浏览 安东尼
摘要

这篇“javascript怎么利用发布订阅模式编写事件监听函数”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JavaScri

这篇“javascript怎么利用发布订阅模式编写事件监听函数”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JavaScript怎么利用发布订阅模式编写事件监听函数”文章吧。

背景

大家有没有遇到过这种情况,想要写一个事件监听函数,当某个事件被触发的时候,会自动执行这个监听函数,类似:

on('changeText', (data) => {    console.log(data)})

这就是典型的发布订阅的一个模式。对于大型项目,你可以使用类似 redux/Vuex 这样的响应式状态管理系统,但是如果你不想使用这么重的方案,可以使用 eventHub。

eventHub和发布订阅模式(Pub/Sub)的关系?

发布订阅是一种设计模式,EventHub可以被看作是一种Pub/Sub实现。

示例

class EventHub {  constructor() {    this.listeners = {};  }  on(eventName, callback) {    if (!this.listeners[eventName]) {      this.listeners[eventName] = [];    }    this.listeners[eventName].push(callback);  }  emit(eventName, data) {    if (this.listeners[eventName]) {      this.listeners[eventName].forEach(callback => {        callback(data);      });    }  }}
const eventHub = new EventHub();eventHub.on('hello', (data) => {  console.log(`Hello ${data}!`);});eventHub.emit('hello', 'world');

上述代码定义了一个名为EventHub的类,它有两个方法:

  • on方法用于订阅事件

  • emit方法用于发布事件。

JavaScript怎么利用发布订阅模式编写事件监听函数

在实际应用中,我们可能需要更复杂的功能,例如取消订阅事件或限制监听器的数量。

基于Vue的eventHub

vue 原生提供了 $on、$emit 等函数,所以直接就可以这么用,但是好像 vue3 去掉了,可以使用更灵活的 ref、Reactive

let eventHub = new Vue()// 监听eventHub.$on('eventName', (data) => {    console.log('Trigger this event and receive ' + data)})// 广播eventHub.$emit('eventName', data)// 去掉监听eventHub.$off('eventName')

以上就是关于“JavaScript怎么利用发布订阅模式编写事件监听函数”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: JavaScript怎么利用发布订阅模式编写事件监听函数

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

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

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

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

下载Word文档
猜你喜欢
  • JavaScript利用发布订阅模式编写事件监听函数
    目录背景示例基于Vue的eventHub背景 大家有没有遇到过这种情况,想要写一个事件监听函数,当某个事件被触发的时候,会自动执行这个监听函数,类似: on('changeText'...
    99+
    2023-05-15
    JavaScript实现事件监听函数 JavaScript事件监听函数 JavaScript事件监听
  • JavaScript怎么利用发布订阅模式编写事件监听函数
    这篇“JavaScript怎么利用发布订阅模式编写事件监听函数”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JavaScri...
    99+
    2023-07-06
  • thinkphp的事件绑定、监听和订阅怎么使用
    这篇文章主要介绍了thinkphp的事件绑定、监听和订阅怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇thinkphp的事件绑定、监听和订阅怎么使用文章都会有所收获,下面我们一起来看看吧。事件是什么事件...
    99+
    2023-06-30
  • C#基于自定义事件EventArgs怎么实现发布订阅模式
    这篇文章主要介绍“C#基于自定义事件EventArgs怎么实现发布订阅模式”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C#基于自定义事件EventArgs怎么实现发布订阅模式”文章能帮助大家解决问...
    99+
    2023-06-30
  • 怎么使用Node.js的内置模块event实现发布订阅模式
    这篇文章主要介绍了怎么使用Node.js的内置模块event实现发布订阅模式的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Node.js的内置模块event实现发布订阅...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作