📚往期笔录记录🔖:
🔖鸿蒙(HarmonyOS)北向开发知识点记录~
🔖鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~
🔖鸿蒙应用开发与鸿蒙系统开发哪个更有前景?
🔖嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~
🔖对于大前端开发来说,转鸿蒙开发究竟是福还是祸?
🔖鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?
🔖记录一场鸿蒙开发岗位面试经历~
🔖持续更新中……
场景描述
在开发应用程序时,我们经常需要使用各种组件来构建和展示用户界面。然而,直接使用原生的组件可能会导致代码冗余和难以维护。为了解决这个问题,基于原生能力的组件封装,将使我们更高效地开发应用程序。
场景一:全局扩展和全局样式使用
在应用开发中,我们通常需要使用相同功能和样式的ArkUI组件,例如购物页面中会使用相同样式的Button按钮、Text显示文字,我们常用的方法是抽取公共样式或者封装成一个自定义组件到公共组件库中以减少冗余代码。
方案
ArkUI提供attributeModifier动态属性设置。
核心代码
1.自定义class实现Button的AttributeModifier接口,通过传入instance参数类型ButtonAttribute识别组件为Button类型,基于instance设置属性值,Button组件的该属性即生效。
// 自定义class实现button的AttributeModifier接口
export class ButtonModifier implements AttributeModifier<ButtonAttribute> {
// 通过ButtonAttribute标识进行属性设置的组件的类型为button组件
applyNormalAttribute(instance: ButtonAttribute): void {
instance.height($r('app.float.float_30'));
instance.width($r('app.float.float_90'));
instance.linearGradient({
angle: LINEAR_ANGLE,
colors: [[$r('app.c