-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ArkUI - 循环控制(ForEach) #13
Comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
一、语法
arr: Array
比如我们有一组2024春节档新片票房的数据:
这个 item 就可以作为第一个参数 arr 传进来,ForEach 就会去遍历这个数组,拿到里面的每一个电影数据。
(item: any, index?: number) => { }
item 是数组中的元素,由于数组中元素的类型是不确定的,所以类型是 Any;
index 是数组的角标,为可选参数。
keyGenerator?: (item: any, index?: number): string => { }
假如我们以电影名称作为唯一标示,现在向这个数组中插入一条新的数据,在遍历的过程中,发现前面的N条数据的标示没有发生变化,因为名字没变,那这时候就不需要去重复渲染,只有最后插入的这条新数据,它的名字跟之前比是不存在的,是新的,这时候只需把这条新的渲染出来就可以了。这样就减少了不必要的渲染,提高了整个页面渲染效率。
二、示例代码
首先自定义一个类 Item
在结构体 Index 里定义 items 成员变量,也就是电影的数组
使用 ForEach 循环遍历数组
效果展示
![循环控制](https://private-user-images.githubusercontent.com/13990136/304338514-89d021f0-007e-45f9-a05c-5965ffda5b7b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjEyMTM4MjMsIm5iZiI6MTcyMTIxMzUyMywicGF0aCI6Ii8xMzk5MDEzNi8zMDQzMzg1MTQtODlkMDIxZjAtMDA3ZS00NWY5LWEwNWMtNTk2NWZmZGE1YjdiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE3VDEwNTIwM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ3YTUyZjZlNTJhODBiNjM3YTEzYzcyYzlhMjZiOWI3NjJkODU2Yjc0OTYyMDlkOTkxNDA4YjA5OGJkMjM0ODAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.cf6KW0nzHWFc6o566CAfsjL9ytElaiNA6QTuLlgHlIQ)
The text was updated successfully, but these errors were encountered: