HarmonyOS鸿蒙Next中可复用的循环渲染

HarmonyOS鸿蒙Next中可复用的循环渲染

问题一
文档中有个属性totalCount:期望加载的数据长度,小于等于数组的长度都好理解,

请问什么情况下需要设置totalCount的长度大于数组的长度呢?

文档如下:

cke_395.png

问题二
Repeat组件包含两种模式:non-virtualScroll模式和virtualScroll模式。

virtualScroll模式的性能明显要比non-virtualScroll模式好很多,为啥还有有这个non-virtualScroll模式,直接全用virtualScroll模式不就好了,non-virtualScroll模式是有什么特殊使用场景吗?(评论区给出了答案,大家可以看一下对不对)

问题三
文档说virtualScroll模式不支持V1模式,但是我用V1装饰器加载了5万条数据,也没看出来有问题啊?

问题四
是不是Repeat组件的non-virtualScroll模式性能方面要比ForEachLazyForEach强,如果有用到循环渲染的地方是不是就完全可以使用Repeat组件了???

问题五
文档中说的混用V1装饰器会导致渲染异常,那么如果我是从V1装饰器跳转到V2装饰器,这种情况算是混用吗?

cke_19367.png


更多关于HarmonyOS鸿蒙Next中可复用的循环渲染的实战教程也可以访问 https://www.itying.com/category-93-b0.html

8 回复

问题一:totalCount的长度大于数组的长度的场景

当需要渲染超长列表时,使用懒加载特性可以保证页面滑动过程的流畅性,即页面只加载了必要的组件。

场景:这个列表的数据总长度为10000,但是服务端提供的数据长度只有100。当用户即将滑动到101条数据时,再去请求服务端获取更多数据。即可以将totalCount设置为10000

更多关于HarmonyOS鸿蒙Next中可复用的循环渲染的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


嗷嗷嗷感谢~这么讲就理解,这种情况也算是分页加载吧~,

问题五:当前Repeat不能与V1装饰器一起使用(Repeat所属的组件只能是@ComponentV2)。从V1装饰器跳转到V2装饰器不属于混用。开发团队已在规划实现Repeat与V1装饰器混用。

问题四:Repeat non-virtualScroll模式是对ForEach组件的优化,virtualScroll模式是对LazyForEach组件的优化。LazyForEach拥有命令式接口,可以随时触发。Repeat跟随状态管理变化。Repeat整体性能与LazyForEach持平。

问题三:virtualScroll模式不支持V1装饰器是因为没有完全适配V1状态管理的特性,如果混用会有未知的行为表现,不建议开发者混用

问题二:virtualScroll模式只能在滚动容器中使用。non-virtualScroll模式可以在任意场景下使用,适用于组件全部创建、不依赖列表容器组件的场景。如Tab标签、短列表

问题二,non-virtualScroll模式可以放在任意容器内使用

文档:

在HarmonyOS鸿蒙Next中,ListContainerRecyclerView是常用的循环渲染组件。ListContainer适用于简单的垂直列表,而RecyclerView则更为灵活,支持复杂的布局和动画。你可以通过自定义ItemProvider来管理数据源和视图绑定,实现高效的循环渲染。此外,使用LazyColumnLazyRow可以实现懒加载,优化性能。通过合理使用这些组件,可以提升应用的流畅性和用户体验。

回到顶部