ArkUI是构建HarmonyOS应用界面的声明式UI开发框架,采用更接近自然语义的声明式范式语法,让开发者可以直观描述UI界面,无需关心框架如何实现UI绘制和渲染,实现极简高效开发。
在UI构建过程中,当我们加入一个组件后(如Text),要配置组件属性,如fontColor、fontSize、margin等,如果对所有组件均在其后面一一配置属性,则代码量会大大增加,代码也无法折叠,层次结构不太清晰。此时,我们可以定义一个函数,实现组件样式的封装和统一。下面以Text组件为例说明。
正常情况下:
Text('Hello') .fontColor(Color.Blue) .fontSize(50) .margin({top: 20, bottom: 20})Text('World') .fontColor(Color.Blue) .fontSize(50) .margin({top: 20, bottom: 20})
此时,我们可以定义一个函数如txtStyle( ),将配置属性的代码写在函数内:
@Extend(Text) function txtStyle() { .fontColor(Color.Blue) .fontSize(50) .margin({top: 20, bottom: 20})}
然后在组件中调用:
Text('Hello') .txtStyle()Text('World') .txtStyle()
这样,当有多个同类型组件需要同样的样式时,通过一行代码调用即可实现该类型组件样式的统一。
当然,我们还可以在函数中加入参数,实现差异化需求:
@Extend(Text) function txtStyle(color: Color, fontSize: number, topMargin: number, bottomMargin: number) { .fontColor(color) .fontSize(fontSize) .margin({top: topMargin, bottom: bottomMargin})}
组件调用时,根据需要代入不同实参:
Text('Hello') .txtStyle(Color.Red, 50, 20, 20)Text('World') .txtStyle(Color.Blue, 30, 40, 40)
这样,是不是很方便呢?
关注我,国人当努力,国货当自强!
花粉社群VIP加油站
猜你喜欢