概述
本实践主要说明如何更精确的控制需要根据条件显隐的组件
多数场景下,我们需要通过某个条件去控制某些文案的显隐,或者控制文案的变化。
一般来讲,官方组件满足通过条件控制自身显隐的能力,但是有些组件内部的文本或者按钮已经内置在组件中,这种情况不一定能够通过配置去控制文本或者按钮的显隐。
比如,「记录详情」组件本身是具备控制显隐的能力,但是其内部的文本却无法通过条件控制显隐。
搭建场景
使用「记录详情」等组件展示详情数据,但是其组件内部子组件 / 字段,却无法通过条件控制显隐。
搭建建议
使用文本、标签、按钮、区块等自带显隐条件控制的基础组件。
- 可以更加细粒度的控制需要显隐的地方,避免组件冗余造成渲染负担。
- 不建议在记录详情或者更大的维度控制,比如,搭建两套记录详情,满足 A 条件时展示 A 记录详情,满足 B 条件时展示 B 记录详情。
搭建实践
原搭建分析
录屏演示
250px|700px|reset

页面变慢/卡顿原因:
- 从录屏可以看到,在不同的条件判断时,Tab 组件内的记录详情组件的最后三个字段是不同的,其他组件完全相同。
- 控制这种字段显隐的方式是将条件放在了最外层的 Tab 组件上,这种搭建方式会有以下的问题:
- 组件冗余:下方的 Tab 组件,每个 tab 项的内容都需要再搭一遍,跟上方的内容几乎一致。假设每个 tab 项下有两个组件,那 6 个 tab 项就多出 12 个组件,这可能会导致在加载详情页时缓慢。根据 aPaaS 现有的规则,也可能会导致页面体积变大,造成页面加载变慢。
- 如果 12 个组件每个组件内部都会有公式的使用,那这 12 个组件上的公式加载也是冗余的,也可能会造成页面初始化加载变慢。
更新后搭建
- Tab 组件 tab 项的显隐,可以通过配置 tab 项来实现。
250px|700px|reset

- 记录详情组件某个字段想要通过条件控制显隐,官方组件没有该能力,但是可以通过基础组件完成。
- 外部使用一个区块组件包裹
- 内部每个字段都使用一个小区块包裹标题和内容
- 标题是文本组件,内容是文本组件或者标签组件,或者其他组件
250px|700px|reset

- 控制字段显隐
- 能够更细粒度的控制某些字段/组件通过条件显隐,同时减少组件冗余问题
250px|700px|reset

搭建效果
- 原效果:可能会导致页面卡顿
250px|700px|reset
- 更新搭建后效果:页面操作更加流畅
250px|700px|reset