尾随闭包初始化 @BuilderParam 非常的简单。
例如,有个子组件 ItemCard,它里面有一个插槽:
@Component
struct ItemCard {
/**
* 插槽
*/
@BuilderParam Content: () => void
build() {
// 使用插槽
this.Content()
}
}
然后,父组件 Index 使用子组件 ItemCard,并初始化插槽。
@Entry
@Component
struct Index {
@Builder Content() {
Text("Content")
}
build() {
Column() {
ItemCard({ Content: this.Content })
}
.width('100%')
}
}
正常情况下,我们会写一个自定义构建函数去初始化插槽。
尾随闭包初始化 @BuilderParam 是什么意思呢?
就是说,你不用再去自定义构建函数了,你直接在子组件的后面跟一对花括号 {}。这花括号就是在初始化插槽。
直接在花括号里描述 UI 即可。
build() {
Column() {
ItemCard() {
Text("尾随闭包 @BuilderParam")
}
}
.width('100%')
}
完整代码:
@Entry
@Component
struct Index {
build() {
Column() {
ItemCard() {
Text("尾随闭包 @BuilderParam")
}
}
.width('100%')
}
}
@Component
struct ItemCard {
/**
* 插槽
*/
@BuilderParam Content: () => void
build() {
// 使用插槽
this.Content()
}
}
运行结果:
从运行结果来看,插槽完美运行。
这种初始化 @BuilderParam 的方式比自定义构建函数要方便,要快。
但代码的可读性比自定义构建函数要差。
所以,不推荐大家这样去初始化 @BuilderParam。
本文暂时没有评论,来添加一个吧(●'◡'●)