前面通过示例4:视频播按钮自定义,介绍了点击按钮通过容器嵌套,封装成切换按钮的全过程。本篇再专题介绍按钮组组件,如何通过连线和嵌套封装,不用一行代码,实现组件功能的扩展升级。具体说明如下:
- 现状
- 各按钮文字(buttons)属性,用于显示各按钮文字。
- 当前索引(select)属性,用来对应当前选中的按钮。
- 需求
- 提供数组设置任意数据,对应各按钮文字(buttons)。
- 切换按钮时,不仅输出当前索引(select),还能输出对应的自定义数据项。
效果如下:
按钮组默认输出
0
、1
、2
,现在支持输出任意设置的day
、month
、year
。
特别说明:
旧版的按钮组默认功能不满足上述需求,因此本篇介绍的封装能起到实际用途。新版已经升级了组件代码,增加了各按钮数据(btnDatas)和当前数据(btnData)属性,正用于此。
不过,本篇同样具有很强的参考和学习意义。组件部分欠缺的功能,无需代码二次开发或等待产品升级,可尝试嵌套封装扩展功能,达到与代码开发等同效果。
在独立页面中对按钮组组件做通用化封装,封装效果和涉及的实现方式,与示例4的内嵌页极为类似,也主要用到解析赋值通过索引对数组的读取和设置。主要思路:
下拉框
设置按钮组
对应的各数据项(这里为["day","moth","year"]
)。工具函数
主动获取下拉框
的数据,而连线解析赋值由按钮组的索引值动态给定。
略。参见1新建。命名为"btnsGroup"
。
拖入按钮组、下拉框组件和获取组件属性值工具函数,并进行属性设置。
- 步骤1:拖入
按钮组
(面板中组件
-表单
)。设置 各按钮文字,从左向右依次设置“本日”、"本月"、“本年”。如下所示;
- 步骤2:拖入
下拉框
(面板中组件
-表单
)。设置功能
-数据内容,格式参见数据内容(datas)。如下所示:
- 步骤3:拖入
获取组件属性值
(面板中组件
-函数
)。
完整操作如下:
数据内容(下拉框)→输入(组)(获取组件属性值),如下所示:
注意:解析赋值通常需要设置索引,才能从关联的数组属性中取值传出。这里不用手动写死,交由步骤2动态设置。
由于下拉框的数据内容(datas)值不变,不会主动触发连线传递,因此需要通过获取组件属性值函数主动获取。需要注意,需先传索引给按钮组,再执行函数,才能确保正确的逻辑。参见连线执行顺序。
完整操作如下:
必须做底板布局,原因以及方式,参见示例4的布局,这里不详细展开,如下所示:
通过新建空白页面,拖放容器组件,嵌套1内嵌页来验证效果。
略。参见1新建。命名为"组件功能无代码扩展"
。
依次拖入嵌套容器、对话框组件,并进行属性设置,具体步骤略。如下所示:
将内嵌页嵌入上一步的容器组件(操作参见容器嵌套),如下所示:
参见连线-高级篇属性继承。本示例只用到获取组件属性值的输出、输出事件筛选指定继承这些即可。此外,如果要在当前页配置下拉框数据内容(datas),也可把该属性继承过来。
经嵌套封装后,连线对继承属性的使用。具体步骤如下:
选中按钮组,分别连两根线:
- 组件功能的升级可以通过无代码方式实现。
- 属性值不变化时无法触发连线执行,此时必须用获取组件属性值。
- 对外可以有多条连线,如果先后依赖关系,需确保连线顺序正确。
- 组件嵌套封装扩展时,能仅让目标组件可见,其他组件只用于提供功能,或者属性被继承和配置。