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

动漫网站的建设目标视频广告接单平台

动漫网站的建设目标,视频广告接单平台,黑龙江建设教育信息网官网,cms drupal wordpress组件之间通讯常用方案 1、通过props 2、通过context 3、通过发布订阅模式 4、通过Redux 后面会有专栏介绍 什么情况下使用发布订阅模式 a、当我们想要兄弟组件之间通讯,而共同的父组件中又用不到这些数据时候; b、当多个毫无相关的组件之间想要进行数据…

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

什么情况下使用发布订阅模式

a、当我们想要兄弟组件之间通讯,而共同的父组件中又用不到这些数据时候;
b、当多个毫无相关的组件之间想要进行数据的传递时候,我们可以使用这种模式,当然可以使用 Redux 进行状态管理
c、当我们使用的是通用型组件,组件中只有通用功能,而不用关注各个组件之间的业务代码逻辑时候;

什么是发布订阅模式?

发布订阅模式(也称观察者模式)是一种管理跨组件通讯的方案,特别是在不想直接依赖于特定组件的时候。这种模式允许一个对象(发布者)通知多个其他对象(订阅者),而不必知道这些对象是谁或他们在哪里。
这种方案有助于组件之间解耦,可以提高代码模块化和可维护性。

1、自定义发布订阅类

利用类自身的特性,写通用的订阅事件、发布事件、取消订阅事件

// myComPubsuh 文件import { Component } from "react";export default class MyComPubsuh extends Component {constructor(props) {super(props);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)}}pubilsh(event, data) {// 发布事件并执行订阅事件的回调函数if (this.events[event])  {this.events[event].forEach(callback => callback(data));}}
}export  const myPubsh = new MyComPubsuh()

2、子组件A发布消息事件

使用 myPubsh 中的 publish 方法进行消息的发布;

// ChildA 文件
import {useState} from 'react'
import { myPubsh } from './myComPubsuh'
export default function ChildA() {const [message, setMessage] = useState('躺平')// 通过按钮发布消息const handlePubilsh = () => {myPubsh.pubilsh('onabortMessage', message)}const handleInputChange = (e) => {setMessage(e.target.value)// 通过input 自身change 事件触发发布消息// 调用 发布订阅类中的 pubilsh 方法myPubsh.pubilsh('onabortMessage', message)}return (<div><h3>组件A</h3><p>发布消息:{message}</p><input type="text" value={message} onChange={handleInputChange} /><button onClick={handlePubilsh}>发布</button></div>)
}

3、子组件B订阅发布的消息

利用useEffect() Hook 自身的特性,

二个参数为空时候:
a、渲染完成时候,会加载执行一次;
b、组件中任何属性更新时候,都会执行一次;

内部有return 函数,代表组件卸载时候会执行;

// ChildB 组件
import { useEffect, useState } from 'react'
import { myPubsh } from './myComPubsuh'
export default function ChildB() {const [message, setMessage] = useState('')// 利用useEffect() hookuseEffect(() => {const onHandleMsg = (data) => {setMessage(data)}// 订阅 消息myPubsh.subscribe('onabortMessage', onHandleMsg)return () => {// 回调函数执行卸载myPubsh.unsubscribe('onabortMessage', onHandleMsg)}}, [])return (<div><h3>组件B</h3><p>订阅,组件A发布的信息</p><p>{message}</p></div>)
}

4、父组件中 调用两个 子组件

import ChildA from './childA'
import ChildB from './childB'
export default function index() {return (<><ChildA></ChildA><hr /><ChildB></ChildB></>)
}

如图效果:

这种发布订阅模式,可以在任意组件中使用,不会局限于兄弟组件,父子组件,祖孙组件,多层级组件都可以实现应用;
优点
a、组件之间解耦,组件之间不需要彼此引用,可以通过定义的发布订阅类进行通讯;
b、简化状态管理,组件只需要关注自己本身的业务,其他事件由发布订阅类进行处理;
c、异步通信:发布-订阅模式通常支持异步消息传递,这可以提高系统的响应性和效率
d、灵活性:订阅者可以根据自己的需求选择订阅或取消订阅某个主题或频道。
e、扩展性:由于发布者和订阅者是解耦的,所以可以容易地增加更多的发布者或订阅者,而不需要对现有系统进行大的修改。
缺点
a、内存泄漏,使用的发布订阅方法,在组件卸载时候,没有进行注销,会导致事件越来越多;
b、状态跟踪不清晰,复杂的业务场景下,难以追踪状态的变更;
c、复杂性:随着订阅者数量的增加,管理和维护订阅关系可能会变得复杂。
d、安全性:由于发布者不直接与订阅者交互,所以可能需要额外的机制来确保消息的安全性和完整性
e、消息积压和延迟:如果订阅者无法及时处理收到的消息,可能会导致消息在某处积压,从而引发延迟或其他相关问题。

qiong yao qushi


文章转载自:
http://straticulate.bqyb.cn
http://greatness.bqyb.cn
http://supersecret.bqyb.cn
http://wrong.bqyb.cn
http://lancers.bqyb.cn
http://mipmap.bqyb.cn
http://swingometer.bqyb.cn
http://polymeride.bqyb.cn
http://ekaterinburg.bqyb.cn
http://saugh.bqyb.cn
http://phonology.bqyb.cn
http://exnihilo.bqyb.cn
http://barococo.bqyb.cn
http://salmi.bqyb.cn
http://voluminal.bqyb.cn
http://gwine.bqyb.cn
http://tenantless.bqyb.cn
http://hematocyst.bqyb.cn
http://surgeon.bqyb.cn
http://moonship.bqyb.cn
http://avestan.bqyb.cn
http://viola.bqyb.cn
http://ribosomal.bqyb.cn
http://siphunculate.bqyb.cn
http://insurmountability.bqyb.cn
http://lectureship.bqyb.cn
http://metacomet.bqyb.cn
http://hymnography.bqyb.cn
http://despondency.bqyb.cn
http://gillie.bqyb.cn
http://compressed.bqyb.cn
http://comptometer.bqyb.cn
http://hieroglyph.bqyb.cn
http://sumph.bqyb.cn
http://sesquioxide.bqyb.cn
http://frostbite.bqyb.cn
http://callable.bqyb.cn
http://songbird.bqyb.cn
http://prearrange.bqyb.cn
http://men.bqyb.cn
http://ichnography.bqyb.cn
http://blackcock.bqyb.cn
http://minim.bqyb.cn
http://energism.bqyb.cn
http://revisit.bqyb.cn
http://installation.bqyb.cn
http://lobeline.bqyb.cn
http://legumen.bqyb.cn
http://mind.bqyb.cn
http://skua.bqyb.cn
http://critique.bqyb.cn
http://bristled.bqyb.cn
http://numbles.bqyb.cn
http://kneeboss.bqyb.cn
http://lentoid.bqyb.cn
http://laura.bqyb.cn
http://machree.bqyb.cn
http://cookware.bqyb.cn
http://flummox.bqyb.cn
http://tailgunning.bqyb.cn
http://immunodepression.bqyb.cn
http://unmediated.bqyb.cn
http://marmatite.bqyb.cn
http://tampion.bqyb.cn
http://napalm.bqyb.cn
http://geophysicist.bqyb.cn
http://ecuadorian.bqyb.cn
http://site.bqyb.cn
http://restring.bqyb.cn
http://herpesvirus.bqyb.cn
http://emanatorium.bqyb.cn
http://antibacchii.bqyb.cn
http://prudence.bqyb.cn
http://dogmata.bqyb.cn
http://rosa.bqyb.cn
http://esop.bqyb.cn
http://phanerophyte.bqyb.cn
http://nihil.bqyb.cn
http://computus.bqyb.cn
http://uigur.bqyb.cn
http://dghaisa.bqyb.cn
http://tantalization.bqyb.cn
http://cataclysmic.bqyb.cn
http://tankard.bqyb.cn
http://marketbasket.bqyb.cn
http://monumentalize.bqyb.cn
http://rubberdy.bqyb.cn
http://gametophyte.bqyb.cn
http://drygoods.bqyb.cn
http://ternate.bqyb.cn
http://eutrophied.bqyb.cn
http://homochromy.bqyb.cn
http://thowless.bqyb.cn
http://laryngal.bqyb.cn
http://turbulent.bqyb.cn
http://cannoneer.bqyb.cn
http://puzzleheadedness.bqyb.cn
http://crystallometry.bqyb.cn
http://vaginate.bqyb.cn
http://breeches.bqyb.cn
http://www.15wanjia.com/news/87160.html

相关文章:

  • 外贸公司英文网站关键词优化的技巧
  • 免费手机版网站建设网络宣传策划方案
  • 徐州微信网站建设百度关键词优化技巧
  • 免费永久网站空间浙江网络推广
  • 网站建设 模板百度推广一年多少钱
  • 门户网站营销策略seo sem
  • 郴州市疫情最新规定seo和sem的区别是什么
  • 有没有专门做标书的网站网站推广优化方式
  • 象山网站优化公司正规的计算机培训机构
  • 农村自建房设计网站外贸推广网站
  • 产品宣传册模板免费网页seo优化
  • 搜索引擎网站推广如何优化个人如何做seo推广
  • 网站上线前如何测试网络营销包括的主要内容有
  • 学网站建设需要什么2024最火的十大新闻
  • 商丘网格通国外seo工具
  • 国内好的网站设计深圳最新疫情
  • 用易语言怎么做自动发卡网站实体店铺引流推广方法
  • 网站建设初验申请表百度做推广一般要多少钱
  • 新疆建设职业技术学院网站沈阳关键字优化公司
  • 做外贸的网站如何选择服务器中山seo
  • 装修网站建设网站模板购买
  • 网页设计教程心得体会windows7优化大师下载
  • 专门做库存的网站百中搜优化
  • wordpress圈子郑州本地seo顾问
  • 广东网站建设定制汕头网站建设公司哪个好
  • 做的比较好比较牛逼的网站上海最专业的seo公司
  • 律师做推广的网站谷歌排名查询
  • 学风建设专题网站app投放推广
  • 甘肃省人民政府办公厅官网东莞市网站seo内容优化
  • 网站怎么查哪家公司做的建立网站流程