#鸿蒙通关秘籍# 如何在HarmonyOS Next开发中有效应用LazyForEach进行高性能的数据加载?

HarmonyOS
8h前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
一路向北545

/** BasicDataSource代码见文档末尾附件: string类型数组的BasicDataSource代码 **/


class MyDataSource extends BasicDataSource {

 private dataArray: string[] = [];


 public totalCount(): number {

   return this.dataArray.length;

 }


 public getData(index: number): string {

   return this.dataArray[index];

 }


 public addData(index: number, data: string): void {

   this.dataArray.splice(index, 0, data);

   this.notifyDataAdd(index);

 }


 public pushData(data: string): void {

   this.dataArray.push(data);

   this.notifyDataAdd(this.dataArray.length - 1);

 }

}


@Entry

@Component

struct MyComponent {

 private data: MyDataSource = new MyDataSource();

   

 aboutToAppear() {

   for (let i = 0; i <= 20; i++) {

     this.data.pushData(`Hello ${i}`)

   }

 }


 build() {

   List({ space: 3 }) {

     LazyForEach(this.data, (item: string) => {

       ListItem() {

         Row() {

           Text(item).fontSize(50)

             .onAppear(() => {

               console.info("appear:" + item)

             })

         }.margin({ left: 10, right: 10 })

       }

     }, (item: string) => item)

   }.cachedCount(5)

 }

}

分享
微博
QQ
微信
回复
1h前
相关问题