ArkTS @Styles装饰器的用法(附带实例)
在开发过程中,不可避免地要写一些样式来设置元素的展示形态,比如字体的粗细、图片的大小等,但是会有很多重复的样式。
面对这些重复的样式,我们没有必要去粘贴复制。为了代码的简洁性和后续维护的便利性,可以提炼出一些公共样式进行复用,这时就会用到 @Styles 装饰器了。
在使用 @Styles 装饰器之前,需要明确以下几点:
@Styles 装饰器的使用方法如下:
效果如下图所示:

图 1 @Styles装饰器
面对这些重复的样式,我们没有必要去粘贴复制。为了代码的简洁性和后续维护的便利性,可以提炼出一些公共样式进行复用,这时就会用到 @Styles 装饰器了。
在使用 @Styles 装饰器之前,需要明确以下几点:
- @Styles 装饰器仅支持通用属性和通用事件。
- @Styles 方法不支持参数。
- @Styles 可以定义为全局,也可以定义在组件内,定义成全局时需要在方法名前面添加 function 关键字,组件内则不需要添加 function 关键字。
- @Styles 关键字不支持 export 导出,只能在当前文件内使用。
@Styles 装饰器的使用方法如下:
// 全局
@Styles function functionName() { ... }
//在组件内
@Component
struct FancyUse {
@Styles fancy() {
.height(100)
}
}
ArkTS @Styles装饰器使用案例
@Styles 装饰器的示例代码如下:
// 定义一个全局的通用样式
@Styles function globalStyles() {
.width(300)
.height(200)
.backgroundColor('#ff0000') // 红色
.margin(10)
.padding(10)
}
@Entry
@Component
struct Demo_Styles {
// 定义组件内的通用样式
@Styles myStyles() {
.width(300)
.height(200)
.backgroundColor('#0000ff') // 蓝色
.margin(10)
.padding(10)
}
build() {
Column() {
// 使用全局样式
Text('这是全局样式')
.globalStyles()
.fontSize(20)
// 组件内的样式
Text('组件内的样式')
.myStyles()
.fontColor('#ffffff')
.width('100%')
.height('100%')
}
}
}
在上述示例代码中,分别定义了全局的 Styles 函数封装和组件内的函数封装。无论是全局的还是组件内的,只需在函数中使用“.属性名:属性”的格式即可。在使用过程中,直接将其当作普通的属性使用即可,同时也可以为当前的UI组件添加其他的一些样式。效果如下图所示:

图 1 @Styles装饰器
ICP备案:
公安联网备案: