写点什么

HarmonyOS 组件复用 @ReusableV2 装饰器的基本使用

作者:万少
  • 2025-06-25
    广东
  • 本文字数:871 字

    阅读完需:约 3 分钟

HarmonyOS 组件复用 @ReusableV2 装饰器的基本使用

HarmonyOS 组件复用 @ReusableV2 装饰器的基本使用

介绍

为了降低反复创建销毁自定义组件带来的性能开销,开发者可以使用 @ReusableV2 装饰 @ComponentV2 装饰的自定义组件,达成组

件复用的效果。

@ReusableV2 用于装饰 V2 的自定义组件,表明该自定义组件具有被复用的能力。

基本使用

  • @ReusableV2 用来装饰 V2 版本的自定义组件

  • reuse 是个属性方法,用来表示可以复用的组件的 id,其中有多种使用的方式。

回收与复用的生命周期

当组件被回收和被复用时,分别是

  • aboutToRecycle 回收

  • aboutToReuse 复用

另外,组件自身还具有创建和销毁,因此一个可以复用的组件是具有四个关键的生命周期的。

结合以下代码来理解

效果



当我们依次点击按钮 1、2、3、4 时,控制台输出



复用前的组件内状态变量重置

这一个是个比较复杂和繁琐的知识点,该知识点重要讲解的是当组件被复用时,它身上使用不同装饰器修饰的变量是被重置,还是被保留下来。

@ReusableV2 在复用前会重置组件中的状态变量以及相关的 @Computed、@Monitor 的内容。在复用的过程当中,所有的 V2 自定义组件,无论是否被标记了 @ReusableV2,都会经历这一个重置过程

@Local

当组件被复用时,@Local 被修饰的变量被重新赋值。

效果



@Param

如果有外部传入则使用外部传入值重新赋值,否则用本地初始值重新赋值。注意:@Once 装饰的变量同样会被重置初始化一次。

效果



@Event

如果有外部传入则使用外部传入值重新赋值,否则用本地初始值重新赋值。如果本地没有初始值,则生成默认的空实现。

对于这个功能,没有什么特别的,正常理解即可。

@Provider

直接使用定义时的初始值重新赋值。

效果



@Consumer

如果有对应的 @Provider 则直接使用 @Provider 对应的值,否则使用本地初始值重新赋值。

@Monitor

在上述所有变量重置完成之后触发。重置过程中产生的变量变化不会触发 @Monitor 回调,仅更新 IMonitorValue 中的 before 值。重置过程中不产生变化的赋值不会触发 @Monitor 的重置。

关于我们

关于青蓝逐码组织

如果你兴趣想要了解更多的鸿蒙应用开发细节和最新资讯甚至你想要做出一款属于自己的应用!欢迎在评论区留言或者私信或者看我个人信息,可以加入技术交流群。



发布于: 刚刚阅读数: 2
用户头像

万少

关注

还未添加个人签名 2021-12-02 加入

还未添加个人简介

评论

发布
暂无评论
HarmonyOS 组件复用 @ReusableV2 装饰器的基本使用_harmoyos_万少_InfoQ写作社区