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

全国电子网站建设想开个网站做外贸怎么做

全国电子网站建设,想开个网站做外贸怎么做,引流推广平台违法吗,微企免费网站建设组件之间通讯常用方案 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/151498/

相关文章:

  • 网络工程师 网站建设合肥做app公司
  • 志愿者协会网站建设u盘启动盘制作工具
  • 青岛网站建设企业wordpress简单网址导航模板
  • 南通建设网站注册域名com和cn
  • 湖北省职业能力建设处网站淘宝是什么语言做的网站
  • 周村区住房和城乡建设厅网站推广100种方式
  • 接网站建设的平台虚拟机做的网站怎么让外网访问不了网
  • 哪个网站做的最好wordpress页面添加按钮
  • 找素材的网站大全中国十大装修公司
  • 做公众号商城原型的网站汕头网站建设公司有哪些
  • 网站和微信订阅号优势网站建设 51下拉平台
  • 网站建设流程包括哪些内容网络营销平台的类型
  • mvc 网站路径音平商城谁做的网站
  • 中国最大免费wap网站网页尺寸1920
  • 网站主域名是什么wordpress 4.0 谷歌
  • 网站建设与规划结论排行榜软件
  • 京东的网站是哪家公司做河北建设安装工程有限公司怎么样
  • 银川网站公司国内网站做得好的公司
  • 学生作业做网站需要网站建设目的与意义
  • 三好街 做网站网站备案关闭网站
  • 南宁网站建设方案报价江苏建设培训网站
  • 北京互联网公司建网站公司运营管理方案
  • 网站后台内容更换怎么做什么软件下载软件最全
  • 做暧暧网站在线看c s网站开发模式
  • 怎么获得免费网站网站恶意做评论
  • 个人网站源代码html建设投票网站的目的
  • 潍坊网站建设设计网站建设课程设计实训心得
  • 徐州网站排名系统厦门专业做网站的公司
  • 网站建设方案预算站长之家alexa排名怎么看
  • 高端网站建设询问磐石网络评论回复网站怎么做的