回复
浅谈require 组件参数传递装饰器
hm688c720f36c59
发布于 2025-10-31 11:09
浏览
0收藏
🎯 浅谈require 组件参数传递装饰器
⭐
📌 见解
1️⃣ 仅用于装饰@Prop、@State、@Provide、@BuilderParam、@Param,以及普通变量(没有被装饰器装饰)
2️⃣ 可用于在开发态联想出组件参数传递是否必需
3️⃣ 在API 18+ @Require装饰@State、@Prop、@Provide装饰的状态变量,可以在无本地初始值的情况下直接在组件内使用,不会抛出异常❗❗❗
🧩 拆解
@Entry
@Component
struct RequireCase {
@State name: string = '汉堡黄'
@Builder
buildTest() {
Row() {
Text('汉堡黄')
.fontSize(30)
}
}
build() {
Column() {
RequireCaseV1({
generalValue: '汉堡黄',
stateValue: '汉堡黄',
provideValue: '汉堡黄',
builderParamValue: this.buildTest,
propValue: '汉堡黄'
})
RequireCaseV2({ message: this.name })
}
}
}
@Component
struct RequireCaseV1 {
@Require generalValue: string = '汉堡黄'
@Require @State stateValue: string = '汉堡黄'
@Require @Provide provideValue: string = '汉堡黄'
@Require @BuilderParam builderParamValue: () => void
@Require @Prop propValue: string = '汉堡黄'
@Builder
buildFunction() {
Column() {
Text('initBuilderParam')
.fontSize(30)
}
}
build() {
Column() {
Text(this.generalValue)
.fontSize(30)
this.builderParamValue()
}
}
}
@ComponentV2
struct RequireCaseV2 {
@Require @Param message: string
build() {
Column() {
Text(this.message)
}
}
}📝 添加参数校验能规避开发态/编译态出现的一些参数缺失的问题,让代码更加健壮
🌸🌼🌺
文章来源:https://developer.huawei.com/consumer/cn/blog/topic/03197235545165241
分类
标签
赞
收藏
回复
相关推荐



















