场景描述
在开发应用程序时,我们经常需要使用各种组件来构建和展示用户界面。然而,直接使用原生的组件可能会导致代码冗余和难以维护。为了解决这个问题,基于原生能力的组件封装,将使我们更高效地开发应用程序。
场景一:全局扩展和全局样式使用
在应用开发中,我们通常需要使用相同功能和样式的ArkUI组件,例如购物页面中会使用相同样式的Button按钮、Text显示文字,我们常用的方法是抽取公共样式或者封装成一个自定义组件到公共组件库中以减少冗余代码。
方案
ArkUI提供attributeModifier动态属性设置。
核心代码
-
自定义class实现Button的AttributeModifier接口,通过传入instance参数类型ButtonAttribute识别组件为Button类型,基于instance设置属性值,Button组件的该属性即生效。
// 自定义class实现button的AttributeModifier接口 export class ButtonModifier implements AttributeModifier<ButtonAttribute> { // 通过ButtonAttribute标识进行属性设置的组件的类型为button组件 applyNormalAttribute(ins