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

建设网站用模版网站无法添加图片

建设网站用模版,网站无法添加图片,网站开发时间,怎样做网站全屏代码发布订阅模式是什么 发布订阅模式是一种代码的设计模式#xff0c;它允许对象间进行松散耦合的通信。 发布者#xff08;Publishers#xff09;不会直接调用订阅者#xff08;Subscribers#xff09;#xff0c;相反#xff0c;它们通过事件通道发布消息#xff1b;订…发布订阅模式是什么 发布订阅模式是一种代码的设计模式它允许对象间进行松散耦合的通信。 发布者Publishers不会直接调用订阅者Subscribers相反它们通过事件通道发布消息订阅者通过注册监听事件通道上的消息来做出响应。 这种模式在事件驱动编程和异步编程中非常有用。 发布订阅模式怎么实现 发布订阅模式在前端开发中有广泛的应用。例如事件处理、状态管理库如 Redux、消息中间件、数据流控制等 1一个用于存储事件及其对应回调的事件中心。 2一个 on 方法用于订阅某个事件并将回调函数注册到事件中心中。 3一个 emit 方法用于发布某个事件并调用所有订阅该事件的回调函数。 4一个 off 方法用于解除订阅。 使用场景 发布-订阅模式可用于解耦复杂的代码逻辑例如 浏览器中的事件处理如点击输入等 背景任务和前台任务之间的通信 多模块或组件之间的通信。 高级实现 在实际开发中我们可能会用到一些更复杂的发布-订阅库比如 EventEmitter (Node.js 内置)、PubSubJS 等这些库提供了更具备鲁棒性的实现和更多特性。 代码 let eventEmitter {//事件中心events:{},//订阅事件on: function (eventName,callback){//如果事件不存在if(!this.events[eventName]){this.events[eventName] [];}this.events[eventName].push(callback);},//发布事件 事件触发emit:function (eventName,...args){// 事件不存在if(!this.events[eventName]){return ;}this.events[eventName].forEach(callback {callback(...args)})},//取消事件off:function (eventName,callback){if(this.events[eventName]){this.events[eventName] this.events[eventName].filter(ee!callback)}},/*** 这里的 args 并没有在 once 函数的参数列表中明确声明* 而是作为 onceWrapper 函数的一个内部变量通过剩余参数语法捕获。* 这是因为 onceWrapper 函数不知道它会接收多少个参数* 所以它使用 ...args 来捕获所有参数并将它们作为一个数组处理* 。然后它可以通过 callback(...args) 将这些参数传递给 callback 函数*///一次性订阅once:function (eventName,callback){const onceWrapper (...args){callback(...args)//执行一次后取消订阅this.off(eventName,onceWrapper)}this.on(eventName,onceWrapper)}}//示例 //用户定义的回调函数 function user1(msg){console.log(user1 ,msg); }function user2(msg){console.log(user2 ,msg); }function user3(msg){console.log(user3 ,msg);} //注册事件 eventEmitter.on(test,user1) eventEmitter.on(test,user2)//事件触发 eventEmitter.emit(test,这是一个测试)//取消订阅 eventEmitter.off(test, user1);// 发布 eventEmitter.emit(test, 这次只有 User2 收到消息);//一次性订阅注册 eventEmitter.once(once,user3)//事件触发两次 eventEmitter.emit(once,test by user3) eventEmitter.emit(once,test by user3)//没有输出
http://www.hkea.cn/news/14327955/

相关文章:

  • 成都网站建设网站自己做的网站怎么添加采集模块
  • 电子商务网站建设应用技术昆明系统开发
  • 网站建设 费用高wordpress 删除文章
  • 做网站与全网营销搜索推广排名优化网站建设规划书总结怎么写
  • 成都做网站的公司哪家好没有备案的网站
  • 江苏永坤建设有限公司网站潜江人才网官网
  • 需要网站建设wordpress技术站主题
  • 网站稿件管理发布系统免费网站正能量不用下载
  • 设计师网站大全惠州建站模板
  • 惠州网站建设服务商龙岗做网站
  • 网站建设的主要技术指什么软件网络公司名字大全简单好听
  • 惠州网站外包wordpress默认数据库配置文件
  • 有哪些做任务的网站建设施工合同
  • wordpress文章列表显示桂林新站优化
  • 济南高端网站制作公司惠州关键词排名提升
  • 九江市住房与城乡建设厅网站php可以做视频网站有哪些
  • 个人网站制作步骤wordpress 搬家 域名
  • 吴江企业网站建设北京建设网站公司网站
  • 自助众筹网站建设创意logo设计生成器
  • 电商网站商品表设计方案手机笑话网站模板
  • 网站怎样做的有吸引力关于asp_sql网站开发的书籍
  • 南京定制网站哪个好天津网站备案时间
  • 婚庆一条龙价目表seo全网优化推广
  • 怎么更改网站栏目id用ps做网站的首页
  • 访问外国网站很慢怎样开网店详细教程
  • 电影采集网站流量无货源电商怎么找货源
  • 个人视频网站怎么做松江做营销网站
  • 免费的网站cms西安网站推广
  • 扁平网站欣赏北京网站建设最大的公司排名
  • 网站怎样建设友情链接最新wordpress教程