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

温州网站建设iis下安装wordpress

温州网站建设,iis下安装wordpress,网站的开发环境论文,企业网站源码php组件之间通讯常用方案 1、通过props 2、通过context 3、通过发布订阅模式 4、通过Redux 后面会有专栏介绍 1、安装 pubsub-js 插件 yarn add pubsub-js 常用的事件 a、发布事件:传入一个自定义事件名称(name),以及要发布的消息内…

组件之间通讯常用方案
1、通过props
2、通过context
3、通过发布订阅模式
4、通过Redux 后面会有专栏介绍

1、安装 pubsub-js 插件 yarn add pubsub-js

常用的事件
a、发布事件:传入一个自定义事件名称(name),以及要发布的消息内容(messagePubsub.publish('name', 'message')
还可以进行异步发布 Pubsub.publishSync('name', 'message')
b、订阅事件:传入发布事件的的名称 (name),以及接收name事件传递参数的回调函数 callback,最终会返回一个类似setTimeout 的timer 用于标记当前订阅的事件,在取消订阅时候可以之间传入此值 let sub0 = Pubsub.subscribe('name', callback)

c、取消订阅
Pubsub.unsubscribe('name') // 可以传入发布事件名称进行取消
Pubsub.unsubscribe(sub0) // 还可以传入 订阅事件返回的标识进行取消

2、在发布事件组件中引入

相对于自定义的发布订阅器要简单一些
可以同时发布多个事件

// 引入插件
import PubSub  from 'pubsub-js'
export default function ChildA() {const handlePublish = () => {// 调用发布事件PubSub.publish('onChangeName', '修改名称')}return (<div style={{background:'blue'}}><h3>组件A</h3><button onClick={handlePublish}>发布</button></div>)
}

3、在订阅组件中使用

可以订阅多个事件,取消多个事件

import { useEffect, useState } from "react"
import PubSub from "pubsub-js"
export default function ChildB() {const [name, setName] = useState('')const handleEvents = (fncName, data) => {/**** @description 回调函数接收两个参数* @param {String} fncName 发布的函数名称,例如:onChangeName* @param {any} data 发布传递的数据消息* */ console.log('=msg==', fncName, data)// 通过 useState 的set 函数进行视图更新setName(data)}useEffect(() => {// 订阅事件let token1 = PubSub.subscribe('onChangeName',handleEvents)return () => {PubSub.unsubscribe('onChangeName')  // 卸载时解除订阅// 两种卸载时候取消订阅方案// PubSub.unsubscribe('token1')  // 卸载时解除订阅}}, [])return (<div><h3>组件B</h3><p>组件A传递消息: {name}</p></div>)
}

4、在父组件中使用

import ChildA from './childA'
import ChildB from './childB'
export default function MyPubsub() {return (<div style={{background: 'red', padding: '12px', width: '360px', height: '500px'}}><h2>父组件</h2><ChildA></ChildA><hr />{/* 完全独立的两个子组件 */}<ChildB></ChildB>  </div>)
}

注意:
a、不管是自定义发布订阅器,还是直接使用插件,在组件卸载时候,都有将当前组件的订阅取消,避免过多订阅运行,导致内存溢出
b、使用插件,相对更加方便简洁,只需要关注及时调用 api既可以,不需要注意发布订阅器里面的逻辑
c、要避免多状态,多个发布订阅器存在多组件中,会在出现bug时候造成难以追踪定位问题点;

http://www.yayakq.cn/news/249916/

相关文章:

  • 太原网站建设优化棋牌软件开发
  • 网站建设的六个步骤电商运营能干一辈子吗
  • asp.net 做网站源代码一个服务器如何建设多个网站
  • 最基本的网络营销站点网页设计与制作教程电子教案完整
  • 福州哪里做网站欧普设计家官网
  • 我想给图书网站做代理做黑彩网站图片
  • 360免费建站官网入口17做网店这个网站好不好
  • 软件设计师考试内容一键优化
  • 手机网站建设公司报价wordpress 数据表插件
  • 怎样做境外网站上赚钱空壳网站清理
  • wordpress网站的根目录在哪工信部网站备案验证码
  • 如何推广企业网站qq推广赚钱一个2元
  • 网站加载慢怎么办go生物网站做蛋白定位
  • 网站主题页中国十大管理咨询公司
  • 织梦仿视频网站模板防做电脑租赁网站
  • 家装网站模板下载免费字体下载
  • 学校网站的服务器用cms做的网站 的步骤
  • 企业网站导航设计深圳网页设计培训视频
  • 网站建设开发的目的医疗网站建设比较好的
  • 自己怎么做网站优化智能手机应用开发
  • 做国内打不开的网站中山专业做网站公司
  • 上海企业网站建设报如何获取网站开发语言
  • 充值网站架设南阳东莞网站建设公司
  • 网站自己的网站5建设需要学什么条件
  • 企业邮箱怎么查看网站查询seo
  • 响应网站先做电脑端滴滴注册网站
  • 做网站需要那些编程语言世界十大建筑设计公司排名
  • 网站排名权重怎么做全网营销推广平台有哪些
  • 怎么用ftp管理网站网站建设分类
  • 广东省工程建设注册中心网站网站开发行业知识新闻