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

自己的电脑做网站空间视屏大企业网站制作及维护

自己的电脑做网站空间视屏,大企业网站制作及维护,移动端网站,个人网站代做需求#xff1a; 在一个页面下有多个子tab在某些tab 下#xff0c;或者父节点的数据更新的时候#xff0c;其他子tab 或者父节点也要同步更新 进程#xff1a; 正常情况下会把所有用到的数据都移动到父节点#xff0c;修改行为也都放在父节点但如果这样的话父节点的数据…需求 在一个页面下有多个子tab在某些tab 下或者父节点的数据更新的时候其他子tab 或者父节点也要同步更新 进程 正常情况下会把所有用到的数据都移动到父节点修改行为也都放在父节点但如果这样的话父节点的数据会非常的多而且有可能只是某两个子节点的数据需要更新这就很麻烦换一个思路所有的数据都放在各自子节点但是在某个变化发生的时候触发一下更新逻辑那又回到之前的那个问题了需要每一个子节点都传入对应的触发函数再换一个逻辑增加一个全局的hook 并绑定上对应的事件在你想要触发更新的时候调用一下这个hook 行为如果有绑定的事件的话就会触发对应事件 //eventhook type eventName string | Symbolconst eventMap new MapeventName, ArrayFunction()const addListenerByName (name: eventName, func: Function) {if (typeof func ! function) {return ;}const listeners eventMap.get(name) || []if (!listeners.includes(func)) {eventMap.set(name, [...listeners, func])} }const removeListenersByName (name: eventName, func: Function) {const listeners [...(eventMap.get(name) || [])]eventMap.set(name, listeners.filter(f f ! func)) }const triggerEventByName (name: eventName) {const listeners eventMap.get(name) || []listeners.forEach(f f()) }type useEventReturn {addListener: (func: Function) () void, // 调用返回的Function会remove监听removeListeners: (func: Function) void,triggerEvent: () void, } /*** 记得清除副作用* param evenetName* returns*/ export const useEvent (name: eventName init): useEventReturn {return {addListener: func {addListenerByName(name, func)return () removeListenersByName(name, func);},removeListeners: func removeListenersByName(name, func),triggerEvent: () triggerEventByName(name),}; }使用的时候 export 一个固定的名字 export const UPDATEUSERDATAEVENTNAME Symbol(event_name)use 这个hook const { addListener } useEvent(UPDATEUSERDATAEVENTNAME)在需要被监听的地方在初始化的时候加入对应的监听逻辑 useEffect(() addListener(() actionRef.current?.reload()), [])在需要触发这个监听逻辑的地方加入const { triggerEvent } useEvent(UPDATEUSERDATAEVENTNAME)并触发这个监听 useEffect(() {triggerEvent()}, [userId] )这个做法的好处是就不需要往子组建传一堆东西了而且也做到了更好的解耦 拓展 在使用这个方法的时候需要一个全局唯一的名字所以用到了 SymbolSymbol是一个绝对唯一的常亮极端的例子 Symbol(“test”) ! Symbol(“test”)
http://www.dnsts.com.cn/news/5170.html

相关文章:

  • 网站制作开发教程seo外链高质量网站
  • 外贸网站建设平台有哪些办公室装修设计公司哪家好
  • 网站策划书编写wordpress 实时表单
  • 发帖子最好的几个网站看2d影片最好的地方
  • 河南省建设厅网站考试成绩查询对于网站运营应该如何做
  • 网站营销培训洛阳网站建设seo
  • 网站 被攻击_主业篡改 被黑了 织梦做的站wordpress front
  • 新品销售网站建设wordpress中调用分类目录文章列表
  • 怎么0成本做网站网站开发 群
  • 微商城网站建设手写字体在线生成器
  • 南昌做微信网站wordpress查看管理员密码
  • 青海省公路建设总公司网站重庆智能网站建设费用
  • 自己做qq头像网站wordpress实名
  • 陕西泰烜建设集团网站wordpress自定义导航菜单
  • 电商网站设计趋势jfinal网站开发模板
  • 潢川微信网站建设深圳建设工程交易服务网老网站
  • 长沙免费建站模板网站建设实训分析总结
  • 网站开发基础知识广州seo排名收费
  • 网站 网页区别是什么wordpress 侧边栏调整
  • 厦门哪些做鲜花的网站织梦手机网站教程视频
  • 网站建设主要产品兰州网站优化公司
  • 无锡网站公司电话企业网站建设步骤是什么
  • 公司建网站流程logo制作软件免费版
  • 西安网站开发技术深圳代做网站
  • 什么网站可以做旅行行程私人做网站的流程
  • 本地wordpress站点上传文件哈尔滨网站建设运营
  • 高碑店建设局网站dw网页设计与制作步骤
  • 人物摄影网站苏州网站搜索引擎优化
  • 广东省公路建设有限公司网站广西壮族自治区皮肤病医院
  • 驾校视频网站模板教你如何做网络营销推广