HarmonyOS 鸿蒙Next系统下,如何使用cachedCount属性实现组件预加载?

发布于 1周前 作者 htzhanglong 来自 鸿蒙OS

HarmonyOS 鸿蒙Next系统下,如何使用cachedCount属性实现组件预加载?

在HarmonyOS NEXT中,cachedCount属性在哪些组件中可以使用,如何配置以实现预加载?

3 回复

另外Repeat也有cachedCount,但与List等组件的cachedCount含义不同

  • List/Grid .cachedCount:是指在可见范围外预加载的节点,这些节点会位于组件树上,但不是可见范围内,List/Grid等容器组件会额外渲染这些可见范围外的节点,从而达到其性能收益。Repeat会将这些节点视为“可见”的。
  • template cachedCount: 是指Repeat视为“不可见”的节点,这些节点是空闲的,框架会暂时保存,在需要使用的时候更新这些节点,从而实现复用。

参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-new-rendering-control-repeat-V5#cachedcount规则 

cachedCount属性支持List、Grid、Swiper、WaterFlow组件。以List为例,cachedCount可以设置列表中ListItem/ListItemGroup的预加载数量,并且只在LazyForEach中生效,即cachedCount只能与LazyForEach一起使用,其他组件使用方式也一样。

List() {
  // ...
}.cachedCount(3) 

参考文档:

https://developer.huawei.com/consumer/cn/doc/best-practices-V5/bpta-lazyforeach-optimization-V5#section1847219719551

https://developer.huawei.com/consumer/cn/doc/best-practices-V5/bpta-best-practices-long-list-V5#section11667144010222

在HarmonyOS鸿蒙Next系统下,cachedCount属性通常用于指定一个组件在缓存池中可以保留的实例数量,从而实现对组件的预加载和复用,以提升应用性能和用户体验。

要实现组件预加载,你可以按照以下步骤操作:

  1. 定义组件:首先,确保你的组件已经正确定义,并且可以在页面中加载和显示。

  2. 配置cachedCount:在组件的[@Component](/user/Component)注解中,使用cachedCount属性来指定缓存实例的数量。例如:

    [@Component](/user/Component)(uri = "your_component_uri", cachedCount = 5)
    public class YourComponent extends Component {
        // 组件实现
    }
    

    这里cachedCount = 5表示缓存池中最多保留5个该组件的实例。

  3. 加载组件:在你的页面中,通过@Inject注解或其他方式加载并使用该组件。

  4. 验证预加载:通过多次进入和退出包含该组件的页面,观察组件的加载速度和性能表现,以验证预加载是否生效。

请注意,cachedCount的设置需要根据实际应用场景和性能需求进行调整。如果设置过高,可能会占用过多内存资源;如果设置过低,可能无法有效减少组件加载时间。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部