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

如何做网站弹窗广告南宁老牌网站建设公司

如何做网站弹窗广告,南宁老牌网站建设公司,深圳做网站信科,唐卡装饰集团 一站式超级体验店React项目中使用发布订阅模式 1.创建发布订阅器2.在组件中使用发布订阅器3. 订阅数据 发布订阅模式#xff08;也称观察者模式#xff09;是一种管理跨组件通信的有效方式#xff0c;尤其是在不希望直接依赖于特定组件的情况下。这种模式允许一个对象#xff08;发布者也称观察者模式是一种管理跨组件通信的有效方式尤其是在不希望直接依赖于特定组件的情况下。这种模式允许一个对象发布者通知多个其他对象订阅者而不必知道这些对象是谁或他们在哪里。这有助于解耦组件使得代码更加模块化和可维护。 1.创建发布订阅器 创建一个发布订阅器类负责管理时间的注册、取消和触发 # js class PubSub {constructor(){this.events {}}subscribe(event, callback){if(!this.events[event]){this.events[event] []}this.events[event].push(callback)}unsubscribe(event,callback){if(this.events[event]){this.events[event] this.events[event].filter(cb cb ! callback)}}publish(event,data){if(this.events[event]){this.events[event].forEach(callback callback(data))}} }const pubsub new PubSub()# tsinterface EventMap {[eventName: string]: any; }class EventCenter {private listeners {}constructor(){this.listeners {}}subscribeT extends keyof EventMap(event: T, callback: (data?: EventMap[T]) void) {if(!this.listeners[event]) {this.listeners[event] []}this.listeners[event].push(callback)}publishT extends keyof EventMap(event: T, data?: EventMap[T]) {const callbacks this.listeners[event]if(callbacks) {callbacks.forEach(callback {callback(data)})}}unsubscribeT extends keyof EventMap(event: T, callback?: (data: EventMap[T]) void) {const callbacks this.listeners[event];if (callbacks) {if (callback) {this.listeners[event] callbacks.filter(cb cb ! callback);} else {delete this.listeners[event];}}} }export default new EventCenter()2.在组件中使用发布订阅器 在你的React组件中使用这个发布订阅器。例如一个组件可以订阅事件以接收数据而另一个组件可以发布事件来发送数据。假设你有一个按钮组件当点击时他会触发一个事件发送一些数据 import React from react; import { pubsub } from ./pubsub; // 引入上面定义的PubSub实例class ButtonComponent extends React.Component {handleClick () {pubsub.publish(dataUpdated, { message: Hello World! });};render() {return (button onClick{this.handleClick}Click me!/button);} }3. 订阅数据 另一个组件可以订阅这个事件并在接收到数据时执行某些操作 import React, { useEffect, useState } from react; import { pubsub } from ./pubsub; // 引入上面定义的PubSub实例interface DisplayProps {} interface DisplayState {message: string; }const DisplayComponent: React.FCDisplayProps () {const [message, setMessage] useState();useEffect(() {const handleDataUpdate ({ message }: { message: string }) {setMessage(message);};pubsub.subscribe(dataUpdated, handleDataUpdate);return () {pubsub.unsubscribe(dataUpdated, handleDataUpdate);};}, []);return div{message}/div; };export default DisplayComponent;
http://www.hkea.cn/news/14489517/

相关文章:

  • 云建网站网址广安网站制作设计
  • 大连网站在哪备案amh安装wordpress
  • 哈尔滨网站开发企业做企业网站要不要我们自己提供网站相关的图片?
  • 建站平台的基础概念长春市做网站哪家好
  • 在ps中做网站首页的尺寸wordpress内页无法打开
  • 外贸网站制作广州司法行政网站建设目的
  • 手表网网站wordpress emlog
  • 网站建设 杭州上海专业页面设计模型设计
  • 网站开发有什么好的命题湖南响应式官网建设哪里有
  • 在线数据分析网站建设集团网站方案设计
  • 公司做网站需要哪些资料比特币网站建设
  • 2015年全球网站优秀设计师网站建设对我有什么好处
  • 北京南站到北京站坐地铁几号线常州市建设局网站电话
  • 给别人做网站别人违法经营6国内专业的网站建设
  • wordpress七牛云储存怎么湖南正规竞价优化公司
  • 网站开发建设哪家好外贸网站平台都有哪些平台
  • 内容营销pptseo优化外包公司
  • 钟祥建设局网站桂林漓江游船攻略
  • 武威市市建设局网站建筑业管理搭建流程
  • 网站建设公司名片捕鱼网站开发
  • 重庆专业网站建设媒体代发布
  • 做响应式的网站.net营销网站开发
  • 微信网站开发 全屏重庆建站公司价钱
  • 做301重定向会影响网站权重吗男女做的羞羞事的网站
  • 制作网站 太原建设网站平台的建议
  • 外宣做网站宣传百度快照官网
  • 如何偷别人dedecms网站的模板软件下载网站怎么赚钱
  • 市场营销专业网站网站怎么做360免费优化
  • 网站建设用php建设优点dede免费手机网站模板
  • 如何修改网站联系人网站建设的目标和需求