图片编号可以识别渲染的是哪一条数据,用于验证组件复用了正确的组件 。
@Reusable@Componentstruct MyListItem {@State item: MyImage = new MyImage('', '')aboutToReuse(params) {this.item = params.itemLogger.info(TAG, 'aboutToReuse-,item=' + this.item.toString())}build() {Row({ space: 10 }) {Image(this.item.image_path).width(50).height(50).borderRadius(5).autoResize(false).syncLoad(true)Blank()Text(this.item.image_id).fontColor(Color.Black).fontSize(15)Blank()Text(this.item.image_path).fontColor(Color.Black).fontSize(15)}}}
入口组件在我们的@Ent*/-·- 件里,在List父组件里,可以调用可复用组件MyListItem 。
通过{ item: item }完成父子组件参数传递 。
reuseId参数是可选的,用于标记可复用组件的复用类型 。属性参数的注释如下:
/*** Reuse id is used for identify the reuse type for each custom node.** @param { string } id - The id for reusable custom node.* @syscap SystemCapability.ArkUI.ArkUI.Full* @crossplatform* @since 10*/reuseId(id: string)
入口组件的示例代码如下:
@Entry@Componentstruct Index {private data: ImageListDataSource = new ImageListDataSource()build() {List({ space: 3 }) {LazyForEach(this.data, (item: MyImage) => {ListItem() {MyListItem({ item: item })// .reuseId(item.image_id)}}, item => item)}}}
注意事项
可以访问站点https://gitee.com/openharmony/developtools_ace_ets2bundle/tree/master/compiler/test/utForPartialUpdate/render_decorator/@recycle查看组件复用的一些示例,这些是用于测试的例子 。@Reusable之前的装饰器的名称为@Recycle,旧名称不使用了 。总结本文介绍了开发OpenHarmony应用时如何使用组件复用能力,提供代码示例,期望帮助关注组件复用的开发者朋友们 。
ForEach渲染控制具有全展开的特性,不能触发组件复用 。
【OpenHarmony组件复用示例】
推荐阅读
- Redis的原理,及各个组件和操作。
- 低代码平台使用的容器组件有哪些?
- 口罩如何消毒重复用一次 口罩如何消毒重复用
- 晒后修复用芦荟胶还是补水面膜 晒后修复怎样使用芦荟胶好
- pp5材质是什么意思可以重复用吗 pp5材质是什么意思
- 炸过的油能放多久 炸过的油能不能反复用
- 胸贴可以重复用几次 胸贴可以重复使用吗
- 怎么卸载360浏览器安全组件
- 腊八蒜的醋可以反复用吗 腌腊八蒜为什么用米醋
- OpenHarmony 3.2 Release新特性解读之驱动HCS