搭建一个商城类网站,中国建设工程电子信息网,无锡网站建设xinysu,阿里云 wordpress cdnLazyForEach从提供的数据源中按需迭代数据#xff0c;并在每次迭代过程中创建相应的组件。当在滚动容器中使用了LazyForEach#xff0c;框架会根据滚动容器可视区域按需创建组件#xff0c;当组件滑出可视区域外时#xff0c;框架会进行组件销毁回收以降低内存占用。
接口…LazyForEach从提供的数据源中按需迭代数据并在每次迭代过程中创建相应的组件。当在滚动容器中使用了LazyForEach框架会根据滚动容器可视区域按需创建组件当组件滑出可视区域外时框架会进行组件销毁回收以降低内存占用。
接口描述
参数
参数名参数类型必填参数描述dataSourceIDataSource是LazyForEach数据源需要开发者实现相关接口。itemGenerator(item: any) void是子组件生成函数为数组中的每一个数据项创建一个子组件。说明 itemGenerator的函数体必须使用大括号{...}。itemGenerator每次迭代只能并且必须生成一个子组件。itemGenerator中可以使用if语句但是必须保证if语句每个分支都会创建一个相同类型的子组件。itemGenerator中不允许使用ForEach和LazyForEach语句。keyGenerator(item: any) string否键值生成函数用于给数据源中的每一个数据项生成唯一且固定的键值。当数据项在数组中的位置更改时其键值不得更改当数组中的数据项被新项替换时被替换项的键值和新项的键值必须不同。键值生成器的功能是可选的但是为了使开发框架能够更好地识别数组更改提高性能建议提供。如将数组反向时如果没有提供键值生成器则LazyForEach中的所有节点都将重建。说明 数据源中的每一个数据项生成的键值不能重复。
IDataSource类型说明
接口声明参数类型说明totalCount(): number-获得数据总数。getData(index: number): anynumber获取索引值index对应的数据。 index获取数据对应的索引值。registerDataChangeListener(listener:DataChangeListener): voidDataChangeListener注册数据改变的监听器。 listener数据变化监听器unregisterDataChangeListener(listener:DataChangeListener): voidDataChangeListener注销数据改变的监听器。 listener数据变化监听器
DataChangeListener类型说明
接口声明参数类型说明onDataReloaded(): void-通知组件重新加载所有数据。onDataAdd(index: number): void8number通知组件index的位置有数据添加。 index数据添加位置的索引值。onDataMove(from: number, to: number): void8from: number, to: number通知组件数据有移动。 from: 数据移动起始位置to: 数据移动目标位置。说明 数据移动前后键值要保持不变如果键值有变化应使用删除数据和新增数据接口。onDataDelete(index: number):void8number通知组件删除index位置的数据并刷新LazyForEach的展示内容。 index数据删除位置的索引值。说明 需要保证dataSource中的对应数据已经在调用onDataDelete前删除否则页面渲染将出现未定义的行为。onDataChange(index: number): void8number通知组件index的位置有数据有变化。 index数据变化位置的索引值。
使用限制 LazyForEach必须在容器组件内使用仅有List、Grid、Swiper以及WaterFlow组件支持数据懒加载可配置cachedCount属性即只加载可视部分以及其前后少量数据用于缓冲其他组件仍然是一次性加载所有的数据。 LazyForEach在每次迭代中必须创建且只允许创建一个子组件。 生成的子组件必须是允许包含在LazyForEach父容器组件中的子组件。 允许LazyForEach包含在if/else条件渲染语句中也允许LazyForEach中出现if/else条件渲染语句。 键值生成器必须针对每个数据生成唯一的值如果键值相同将导致键值相同的UI组件被框架忽略从而无法在父容器内显示。 LazyForEach必须使用DataChangeListener对象来进行更新第一个参数dataSource使用状态变量时状态变量改变不会触发LazyForEach的UI刷新。 为了高性能渲染通过DataChangeListener对象的onDataChange方法来更新UI时需要生成不同于原来的键值来触发组件刷新。 itemGenerator函数的调用顺序不一定和数据源中的数据项相同在开发过程中不要假设itemGenerator和keyGenerator函数是否执行及其执行顺序。例如以下示例可能无法正常运行 LazyForEach(dataSource, (item: Object) Text(${item.i}. item.data.label),(item: Object): string item.data.id.toString())
最后
有很多小伙伴不知道学习哪些鸿蒙开发技术不知道需要重点掌握哪些鸿蒙应用开发知识点而且学习时频繁踩坑最终浪费大量时间。所以有一份实用的鸿蒙HarmonyOS NEXT资料用来跟着学习是非常有必要的。
这份鸿蒙HarmonyOS NEXT资料包含了鸿蒙开发必掌握的核心知识要点内容包含了ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等鸿蒙HarmonyOS NEXT技术知识点。
希望这一份鸿蒙学习资料能够给大家带来帮助有需要的小伙伴自行领取限时开源先到先得~无套路领取
获取这份完整版高清学习路线请点击→纯血版全套鸿蒙HarmonyOS学习资料
鸿蒙HarmonyOS NEXT最新学习路线 HarmonOS基础技能 HarmonOS就业必备技能 HarmonOS多媒体技术 鸿蒙NaPi组件进阶 HarmonOS高级技能 初识HarmonOS内核 实战就业级设备开发 有了路线图怎么能没有学习资料呢小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙OpenHarmony 学习手册共计1236页与鸿蒙OpenHarmony 开发入门教学视频内容包含ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。
获取以上完整版高清学习路线请点击→纯血版全套鸿蒙HarmonyOS学习资料
《鸿蒙 (OpenHarmony)开发入门教学视频》 《鸿蒙生态应用开发V2.0白皮书》 《鸿蒙 (OpenHarmony)开发基础到实战手册》
OpenHarmony北向、南向开发环境搭建 《鸿蒙开发基础》
ArkTS语言安装DevEco Studio运用你的第一个ArkTS应用ArkUI声明式UI开发.…… 《鸿蒙开发进阶》
Stage模型入门网络管理数据管理电话服务分布式应用开发通知与窗口管理多媒体技术安全技能任务管理WebGL国际化开发应用测试DFX面向未来设计鸿蒙系统移植和裁剪定制…… 《鸿蒙进阶实战》
ArkTS实践UIAbility应用网络案例…… 获取以上完整鸿蒙HarmonyOS学习资料请点击→纯血版全套鸿蒙HarmonyOS学习资料
总结
总的来说华为鸿蒙不再兼容安卓对中年程序员来说是一个挑战也是一个机会。只有积极应对变化不断学习和提升自己他们才能在这个变革的时代中立于不败之地。