加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

系统为抗击疫情提供信息的4种方式

发布时间:2021-02-11 15:02:15 所属栏目:外闻 来源:互联网
导读:在繁华的城市里,人们或许不到500米就能看到一座基站。在未来5G的某些场景下,甚至可能出现每50米一座基站的情况。 越来越密集的基站,大幅改善了网络覆盖质量,给人们带来便利。然而,也有很多人,极力抵触甚至百般阻挠身边的基站建设项目。 为什么呢?原因

在繁华的城市里,人们或许不到500米就能看到一座基站。在未来5G的某些场景下,甚至可能出现每50米一座基站的情况。

越来越密集的基站,大幅改善了网络覆盖质量,给人们带来便利。然而,也有很多人,极力抵触甚至百般阻挠身边的基站建设项目。

为什么呢?原因很简单,就是因为害怕“辐射”。

一直以来,围绕基站辐射的纷争在各地时有发生,相关的新闻也是屡见不鲜。

很多时候,运营商只得无奈拆除小区所有的基站设备,撤退离场。这样一来,导致更多用户的正常生活受到影响
 

根据分析 VirtualList 的子节点获取得到插槽队列,然后通知 sizeAndPositionManager:

  • 更新计算所有虚拟子节点的 offset
  • 根据插槽的 start & end 划分 section

插槽的偏移计算公式如下:

  • SlotHeader(n).offset = SlotHeader(n).firstItem.offset - SlotHeader(n).size
  • SlotFooter(n).offset = SlotHeader(n).lastItem.offset + SlotHeader(n).lastItem.size

单列多 Section

遍历 VirutalList 内部的所有子元素,处理有 Section 和 无 Section 两种情况。最终处理为统一格式的 section 数组提供给后续渲染。

这种诉求场景是当我们渲染长列表时,我们可能会存在需要定制化个别元素作为某一段落的头部和尾部。

基本算法逻辑如下:
 

述代码中的 measure 就是通信的一种方式。在图片加载成功后,会通知长列表组件更新计算。从而达到动态尺寸的诉求。

自定义 Header/Footer

使用单独一个 slotManager 对 Header、Footer 进行插槽计算。即为将所有的 Header 和 Footer 当做虚拟列表的子项以外的插槽进行额外处理。

实现一个 SlotManager ,用以进行所有的插槽计算,如下:
 

通过 SizeAndPositionManager 的设计,将虚拟列表的偏移计算等相关逻辑抽离在此处,从而解耦和视图界面之间的关联。

不定尺寸的子元素

子元素的尺寸不定的情况下:

  • 静态计算 :提前预知所有元素的尺寸,并通过数组类型的 prop 传入,每个列表项的高度通过索引来获得。配置方式:prop:itemSize=[]number
  • 动态延迟计算:传入获取列表项高度的方法,给这个方法传入 item 和 index ,返回对应列表项的高度。配置方式:prop:itemSize=: number

将上述方式得出的尺寸作为计算依据,若无法获取对应尺寸,则使用预估尺寸(可配置)。

在 C 端项目中必然存在图片加载撑起高度等情况,子项高度大概率不确定。

如何动态估算子项高度?可以使用 estimatedItemSize 类似配置,这样就能依赖预估高度计算列表内容的总高度,并且总高度随着列表项的渲染而渐进调整。这个在列表项是动态高度的场景下很有用,可以初始化内容的总长度以撑开容器元素,使其可在水平/垂直方向滚动。

**

当然如果上述都满足不了需求。也有 react-virtualized 中的 CellMeasurer 作为一种提供尺寸度量的 HOC 组件提供。本质上桥接了组件调用方与虚拟列表组件内部通讯,组件调用方可以在元素尺寸稳定时显示通知组件更新计算。

调用方式如下:

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读