1.数据源类型:

ForEach:直接接受一个数组作为数据源。
LazyForEach:接受一个实现 IDataSource 接口的对象作为数据源。

2.渲染策略:

ForEach:一次性渲染所有数据项,适用于数据量较少的场景。
LazyForEach:只渲染可视区域内的数据项,适用于数据量较大的情况,提升性能。

3.内存使用:

ForEach:一次性加载所有数据,内存使用比较高。
LazyForEach:根据可视区域按需加载数据项,并回收滑出可视区域的数据项,内存使用较低。

 

LazyForEach 刷新数据,存在不更新ui的情况

LazyForEach(
    dataSource: IDataSource,             // 需要进行数据迭代的数据源
    itemGenerator: (item: Object, index: number) => void,  // 子组件生成函数
    keyGenerator?: (item: Object, index: number) => string // 键值生成函数
): void

LazyForEach 中又三个参数,要想数据内容发生改变必须 要更新keyGenerator这个值,才能保证界面上的数据更新

 

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐