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

定制网站对公司有什么好处上传网站

定制网站对公司有什么好处,上传网站,青创网官网,网站建设存在的困难问题组件之间通讯常用方案 1、通过props 2、通过context 3、通过发布订阅模式 4、通过Redux 后面会有专栏介绍 什么情况下使用发布订阅模式 a、当我们想要兄弟组件之间通讯#xff0c;而共同的父组件中又用不到这些数据时候#xff1b; 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 (divh3组件A/h3p发布消息:{message}/pinput typetext 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 (divh3组件B/h3p订阅组件A发布的信息/pp{message}/p/div) } 4、父组件中 调用两个 子组件 import ChildA from ./childA import ChildB from ./childB export default function index() {return (ChildA/ChildAhr /ChildB/ChildB/) }如图效果 这种发布订阅模式可以在任意组件中使用不会局限于兄弟组件父子组件祖孙组件多层级组件都可以实现应用 优点 a、组件之间解耦组件之间不需要彼此引用可以通过定义的发布订阅类进行通讯 b、简化状态管理组件只需要关注自己本身的业务其他事件由发布订阅类进行处理 c、异步通信发布-订阅模式通常支持异步消息传递这可以提高系统的响应性和效率 d、灵活性订阅者可以根据自己的需求选择订阅或取消订阅某个主题或频道。 e、扩展性由于发布者和订阅者是解耦的所以可以容易地增加更多的发布者或订阅者而不需要对现有系统进行大的修改。 缺点 a、内存泄漏使用的发布订阅方法在组件卸载时候没有进行注销会导致事件越来越多 b、状态跟踪不清晰复杂的业务场景下难以追踪状态的变更 c、复杂性随着订阅者数量的增加管理和维护订阅关系可能会变得复杂。 d、安全性由于发布者不直接与订阅者交互所以可能需要额外的机制来确保消息的安全性和完整性 e、消息积压和延迟如果订阅者无法及时处理收到的消息可能会导致消息在某处积压从而引发延迟或其他相关问题。 qiong yao qushi
http://www.hkea.cn/news/14334463/

相关文章:

  • 企业网站的建设与维护是什么网站建设 办公系统
  • 旅游网站建设规划方案免费logo设计生成器在线制作
  • dw做的网站如何上传云服务器网络推广公司简介模板
  • hyip网站开发怎么做淘宝客网站赚钱
  • 网站管理助手未找到iis广告推广公司
  • 网站如何做站内站跑腿个人网站怎么做
  • django企业网站源码网站规划与开发技术
  • 素材网站的图可以做海报吗免费签名设计
  • 做网站报价手机网站的制作
  • 网站推广的常用方法有哪些?西安seo包年服务
  • 模板网站怎么优化建网站多少钱可以卖货的
  • 响应式网站的特点如何进行网站建设的销售
  • 有做lol直播网站在线做GO分析的网站
  • 有了域名就可以做网站了吗互助网站建设
  • 内江市住房和城乡建设局网站东北网站建设公司
  • 网站内容收费码支付wordpress用不
  • 广州微网站建设案例网站怎样做公众号
  • 黄石网站建设广东佛山网络有限公司
  • 宁波网站建设ysdshwordpress首页弹窗
  • 网站开发专业术语大全网站建设建构
  • 网站建设 律师wordpress会员可见插件
  • 阿里云虚拟主机做2个网站吗做外贸的网站有何用处
  • 如何建立一个网站链接把文件信息存里厨师培训机构 厨师短期培训班
  • 在山东省建设监理协会网站工信部 网站备案材料 复印件 电子版
  • 特产网站怎么做投资公司怎么赚钱
  • 石家庄哪里有做外贸网站的公司建一个类似亨物说网站建设费用
  • 好的ppt模板免费下载网站哪个网站可以做加工
  • 小型企业网站如何建设网页页面设计尺寸
  • 网站设置二级域名网站建设一般报价
  • 百度网站数据统计怎么做wordpress忘记密码了