@Styles
装饰器可以将多条样式设置提炼成一个方法,直接在组件声明的位置调用。通过@Styles
装饰器可以快速定义并复用自定义样式。
@Entry
@Component
struct FirstComponent {
// 定义一个@Styles样式方法
@Styles MyStyles() {
.width(100)
.height(100)
.backgroundColor(Color.Red)
}
build() {
Column() {
Text("使用组件内的@Styles样式")
// 使用@Style样式方法
.MyStyles()
}
}
}
@Entry
@Component
struct FirstComponent {
build() {
Column() {
Text("使用全局的@Styles样式")
// 使用全局的@Styles样式方法
.MyGlobalStyles()
}
}
}
// 定义全局全局的@Styles需要添加function关键字
// 定义全局的@Styles样式方法
@Styles function MyGlobalStyles() {
.width(100)
.height(100)
.backgroundColor(Color.Red)
}
@Styles
仅支持通用属性和通用事件。@Styles
方法不支持参数。@Styles
的优先级高于全局@Styles
。@Styles
,如果找不到,则会全局查找。@Extend
装饰器给指定的组件封装样式方式。@Extend
装饰器与@Styles
装饰器的不同:
@Entry
@Component
struct FirstComponent {
build() {
Column() {
Text("使用@Exteng定义的样式方法")
// 使用样式方法
.MyStyles()
}
}
}
// @Extend给Text组件定义一个样式方法
@Extend(Text) function MyStyles() {
.width(100)
.height(100)
.backgroundColor(Color.Red)
}