鸿蒙应用开发(2)
鸿蒙应用开发启航计划-CSDN博客
鸿蒙应用开发(1)-CSDN博客
没看过前两篇的,建议请先看上面。
如果你学习完了前两篇,那么你学习这篇文章,就很容易理解了。
这一篇文章将介绍声明式UI的 渲染控制。你需要了解的是,它们渲染的是UI组件。从这个角度,去理解会很简单。
条件渲染
if/else:条件渲染
循坏渲染
ForEach:循环渲染 ,这块知识是围绕3个参数展开的:
整体结构我自己理解可以理解为如此结构:“数据源,组件,键值?”
developer.huawei.com网站的示例如下:
- // arr是string类型的数组
- // 第一个参数是组件创建函数
- // 第二个参数是键值生成函数
- ForEach(this.arr, (item: string, index: number) => {Text(item)}, (item: string, index: number) => item + index)
数组类型数据(可简单理解为数据源)第一个参数
arr Array<Object> 必填
keyGenerator 第三个参数
keyGenerator (item: Object, index: number) => string 选填
第三个参数缺省时,默认键值生成规则:(item: Object, index: number) => { return index + '__' + JSON.stringify(item); },你可以把这个过程简单理解为密码加密的过程,然后最终生成了标识密码给每个元素打标记。
首先,你要清楚的不是这个语法的意义,而是为什么需要这个键值,其实就是为了给元素打标记,就是为了复用。如果元素没有变化,键值不变,则不会创建,终极目标是花最低的性能成本去渲染UI组件。
itemGenerator 第二个参数
itemGenerator (item: Object, index: number) => void 必填
组件创建规则(首次渲染和非首次渲染)
首次渲染 --- 创建和渲染
非首次渲染 --- 键值不存在,直接创建;键值存在,直接渲染。
从上面你也应该知道了,构建UI除了传统的系统组件外,还可以借助渲染控制语句辅助UI的创建。
ForEach在开发过程中使用场景,如果是列表场景,分为:
列表数据源不变,列表数据源变化,列表数据源子属性变化(这个说起来有点抽象举个例子,你就可以了解了,比如你发的朋友圈,有人点赞,评论。item整体没有大的变化,只是细微处的子项目有变化。)
需要感悟的地方:细心的读者可能发现了,我上面介绍是ForEach的3个参数,我的介绍顺序是132,而不是123的顺序介绍。这个介绍方式是有意为之的,ForEach的工作顺序,就是132。就是准备了1,然后根据3去生成2,根据2去让组件创建和渲染。
最后,如果数据源数量非常大,建议使用LazyForEach组件。
如果觉得文章有帮到你或者有一些收获,点赞、收藏和评论一下吧。
相关文章:
鸿蒙应用开发(2)
鸿蒙应用开发启航计划-CSDN博客 鸿蒙应用开发(1)-CSDN博客 没看过前两篇的,建议请先看上面。 如果你学习完了前两篇,那么你学习这篇文章,就很容易理解了。 这一篇文章将介绍声明式UI的 渲染控制。你需要了解的是&…...
单片机-LED点阵实验
要将第一个点点亮,则 1 脚接高电平 a 脚接低电平,则第一个点就亮了;如果要将第一行点亮,则第 1 脚要接高电平,而(a、b、c、d、e、f、g、h )这些引脚接低电平,那么第一行就会点亮&…...
微服务-Nacos(注册中心)
Nacos Nacos可以看作注册中心配置中心,比Eureka更加强大。 注册中心 在父工程中引入SpringCloudAlibaba的版本依赖 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId&g…...
【Linux知识】shell编程知识科普
文章目录 概述文件格式语法及例子 文件读写文件读取文件写入错误处理 后台执行shell1. 使用 & 符号2. 使用 nohup 命令3. 使用 screen 或 tmux使用 screen使用 tmux 4. 使用 disown 命令5. 使用系统服务管理器(如 systemd) 概述 Linux shell脚本文件…...
小程序学习06——uniapp组件常规引入和easycom引入语法
目录 一 组件注册 1.1 组件全局注册 1.2 组件全局引入 1.3 组件局部引入 页面引入组件方式 1.3.1 传统vue规范: 1.3.2 通过uni-app的easycom 二 组件的类型 2.1 基础组件列表 一 组件注册 1.1 组件全局注册 (a)新建compoents文件…...
平安产险安徽分公司携手安徽中医药临床研究中心附属医院 共筑儿童安全防护网
为响应金融知识普及教育号召,平安产险安徽分公司联动安徽中医药临床研究中心附属医院,于近日在朝霞小学举办了一场儿童安全防范与健康守护活动。此次活动旨在提升学生的安全防范意识,守护儿童健康成长,同时有力推动金融知识与传统…...
C语言练习:求数组的最大值与最小值
文章目录 1. 提出任务2. 完成任务2.1 方法一:通过返回结构体指针来间接返回结果2.1.1 编写程序,实现功能2.1.2 运行程序,查看结果 2.2 方法二:通过参数传递数组,并在函数中修改传入的参数2.2.1 编写程序,实…...
c++ thread线程join、detach、joinable方法
(621条消息) 线程中断Thread的interrupt()方法_thread interrupt_萝卜阿咕咕的博客-CSDN博客 C/C编程:std::thread 详解-CSDN博客 #include <iostream> #include <thread>void do_some_work() {std::cout<<"Hello Concurrent World\n"…...
【算法刷题】leetcode hot 100 哈希篇
文章目录 1. 两数之和49. 字母异位词分组128. 最长连续序列总结 1. 两数之和 leetcode:https://leetcode.cn/problems/two-sum/description/?envTypestudy-plan-v2&envIdtop-100-liked暴力解决: public int[] twoSum(int[] nums, int target) {for …...
linux系统(ubuntu,uos等)连接鸿蒙next(mate60)设备
以前在linux上是用adb连接,现在升级 到了鸿蒙next,adb就不好用了。得用Hdc来了,在windows上安装了hisuit用的好好的,但是到了linux(ubuntu2204)下载安装了 下载中心 | 华为开发者联盟-HarmonyOS开发者官网,共建鸿蒙生…...
支付宝实名认证
实名认证后台服务主要涉及两个接口:人脸核身初始化接口、人脸核身结果查询接口 import com.alibaba.fastjson.JSONObject; import com.alipay.api.*; import com.alipay.api.domain.DatadigitalFincloudGeneralsaasFaceVerificationInitializeModel; import com.ali…...
GO随想:GO的并发等待
协程并发等待技术——WaitGroup 类型和 errgroup 包 waitgroup 阻塞等待多个并发任务执行完成。WaitGroup 类型主要包含下面几个方法。 func (wg *WaitGroup) Add(delta int) func (wg *WaitGroup) Done() func (wg *WaitGroup) Wait() 第一个是 Add 方法,在任务运…...
kubernetes第五天
1.容器的健康检查Probe(探针)之readinessProbe就绪探针 1.exec方式检查 #通过rc资源创建了三个pod,然后使用services资源,对外提供三个pod的容器的访问入口。 apiVersion: v1 kind: ReplicationController metadata:name: web-rc-readlinepr…...
扩散模型论文概述(三):Stability AI系列工作【学习笔记】
视频链接:扩散模型论文概述(三):Stability AI系列工作_哔哩哔哩_bilibili 本期视频讲的是Stability AI在图像生成的工作。 同样,第一张图片是神作,总结的太好了! 介绍Stable Diffusion之前&…...
JVM调优,参数在哪里设置的?
JVM调优,参数在哪里设置的? 在Java应用程序中,JVM(Java Virtual Machine)的调优通常通过设置JVM启动参数来实现。这些参数可以控制JVM的内存分配、垃圾回收策略、线程管理、性能优化等方面。 1. JVM参数的位置 JVM参…...
2024年最新Stable Diffusion 新手入门教程,安装使用及模型下载
一、安装要求: ① 操作系统:Windows10以后的系统 ② CPU:不做强制性要求 ③ 内存:推荐8G以上 ④ 显卡:必须是Nvidia的独立显卡,显存最低4G,推荐20系以后;A卡、核显只能用CPU跑 …...
Ubuntu 20.04安装gcc
一、安装GCC 1.更新包列表 user596785154:~$ sudo apt update2.安装gcc user596785154:~$ sudo apt install gcc3.验证安装 user596785154:~$ gcc --version二 编译C文件 1.新建workspace文件夹 user596785154:~$ mkdir workspace2.进入workspace文件夹 user596785154:~…...
IT运维的365天--024 闲置路由器关闭了dhcp,如何知道它的IP是啥
有时候各种原因,我们关闭了路由器的Dhcp,比如需要获取的无线IP和有线同一个网段的情况。时间久了,如果没做标记,大部分时候就会忘了路由器原来设置的是什么IP,没有路由器的对应IP,自然也无法进路由器后台去…...
kaggle竞赛:纽约出租车行程时间NYC Taxi Trip Duration
1.引言 作为一名(坦白说有点懒的)图像处理方向的研究生,说实话最近新开一个坑,可能是因为要寒假了比较无聊,这次带来的系列是kaggle数据处理竞赛的经典例题:纽约出租车行程时间问题。希望大家多多支持&…...
Freemarker模板进行判空
文章目录 freemarker判断对象是否为null使用 ?? 操作符使用 ?has_content 内建函数直接使用 ! 操作符取反 freemarker判断列表是否为空 freemarker判断对象是否为null 在 FreeMarker 模板引擎中,你可以使用内建的指令和条件判断来检测一个对象是否为 null。Free…...
ESP32-S3单片机入门:点灯
硬件准备 所需硬件:ESP32-S3开发板、LED、电阻、杜邦线、面包板、USB线(可传输数据) 了解硬件 ESP32-S3开发板 ESP32-S3 技术规格书 | 乐鑫科技文档 LED 电阻 作用:把电能转化为热能或其它形式的能量࿰…...
终极Pingvin Share配置优化指南:从基础设置到高级安全防护
终极Pingvin Share配置优化指南:从基础设置到高级安全防护 【免费下载链接】pingvin-share A self-hosted file sharing platform that combines lightness and beauty, perfect for seamless and efficient file sharing. 项目地址: https://gitcode.com/gh_mirr…...
【2026奇点智能技术大会权威内参】:AIAgent强化学习的5大落地陷阱与企业级避坑指南
第一章:2026奇点智能技术大会:AIAgent强化学习 2026奇点智能技术大会(https://ml-summit.org) 核心范式演进:从监督微调到在线策略优化 本届大会首次将AIAgent的强化学习训练流程标准化为“感知-决策-执行-反思”四阶段闭环。与传统RLHF不同…...
别再死磕RLHF了!用DPO微调你的Qwen2.5模型,保姆级代码避坑指南
别再死磕RLHF了!用DPO微调你的Qwen2.5模型,保姆级代码避坑指南 如果你正在寻找一种比RLHF更简单高效的方法来微调你的Qwen2.5模型,那么DPO(直接偏好优化)可能是你需要的解决方案。与传统的强化学习人类反馈(…...
从产品经理视角看技术实现:拆解‘苍穹外卖’套餐管理的业务逻辑与接口设计
从产品经理视角看技术实现:拆解‘苍穹外卖’套餐管理的业务逻辑与接口设计 在数字化餐饮服务领域,套餐管理模块的设计直接影响运营效率和用户体验。作为连接商业策略与技术落地的关键环节,产品经理需要深入理解业务规则如何转化为系统约束&am…...
QtAwesome:为Python桌面应用添加专业图标库的终极指南
QtAwesome:为Python桌面应用添加专业图标库的终极指南 【免费下载链接】qtawesome Iconic fonts in PyQt and PySide applications 项目地址: https://gitcode.com/gh_mirrors/qta/qtawesome 你是否厌倦了为PyQt或PySide应用寻找合适的图标资源?Q…...
【CVE-2026-25253】--漏洞复现、漏洞原理以及修复建议
前言 OpenClaw 是一款 开源、本地优先的 AI 智能体框架,核心目标是让 AI 从“只会聊天”升级为“能动手执行真实任务”,被社区亲切地称为“龙虾 AI”或“小龙虾” 一、漏洞概述 1、详情 CVE-2026-25253是OpenClaw控制界面(Control UI)中存在的跨站We…...
KaTrain围棋AI:三步解锁专业级智能训练,从新手到高手的高效进阶指南
KaTrain围棋AI:三步解锁专业级智能训练,从新手到高手的高效进阶指南 【免费下载链接】katrain Improve your Baduk skills by training with KataGo! 项目地址: https://gitcode.com/gh_mirrors/ka/katrain 你是否曾经在围棋对局中感到迷茫&#…...
TrollInstallerX终极指南:简单快速安装TrollStore的完整教程
TrollInstallerX终极指南:简单快速安装TrollStore的完整教程 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX 您是否一直在寻找一种简单可靠的方法࿰…...
Unlock Music音乐解锁工具:打破音乐平台枷锁的终极解决方案
Unlock Music音乐解锁工具:打破音乐平台枷锁的终极解决方案 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: …...
