版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
渲染控制0102条件渲染循环渲染条件渲染在ArkUI声明式开发范式中,页面中的组件可以使用if/else条件渲染,以达到根据应用的不同状态,渲染对应状态下的UI内容。条件渲染使用说明:if/else条件语句可以使用状态变量,并且在更新场景下必须使用状态变量。使用if/else可以使子组件的渲染依赖条件语句。必须在容器组件内使用。某些容器组件限制子组件的类型或数量,将if/else用于这些组件内时,这些限制将同样应用于if/else语句内创建的组件。例如Grid容器组件的子组件仅支持GridItem组件。条件渲染if/else使用示例:@Componentstruct
MyComponent
{
@State
count:
number
=
300
build()
{
Column()
{
if
(this.count
<
0)
{
Text('count
is
negative').fontSize(14)
}
else
if
(this.count
%
2
===
0)
{
Text('count
is
even').fontSize(14)
}
else
{
Text('count
is
odd').fontSize(14)
}
}
}}循环渲染在ArkUI声明式开发范式中,重复出现的组件可以用ForEach循环来迭代渲染,组件需要的数据放在数组中,ForEach在迭代数组时创建相应的组件并传入数据。ForEach语句结构:ForEach(
arr:
any[],
itemGenerator:
(item:
any,
index?:
number)
=>
void,
keyGenerator?:
(item:
any,
index?:
number)
=>
string
)循环渲染ForEach参数说明:参数名参数类型必填参数描述arrany[]是必须是数组,允许设置为空数组,空数组场景下将不会创建子组件。同时允许设置返回值为数组类型的函数,例如arr.slice(1,3),设置的函数不得改变包括数组本身在内的任何状态变量,如Array.splice、Array.sort或Array.reverse这些改变原数组的函数。itemGenerator(item:any,index?:number)=>void是生成子组件的箭头函数,为数组中的每一个数据项创建一个或多个子组件,单个子组件或子组件列表必须包括在大括号“{...}”中。keyGenerator(item:any,index?:number)=>string否匿名函数,用于给数组中的每一个数据项生成唯一且固定的键值。默认使用index+JSON.stringify(item)。为了使开发框架能够更好地识别数组更改,提高性能,建议开发者提供自定义的键值生成器。循环渲染ForEach使用说明:ForEach必须在容器组件内使用。生成的子组件应当是允许包含在ForEach父容器组件中的子组件。允许子组件生成器函数中包含if/else条件渲染。键值生成器必须针对每个数据生成唯一的值,如果键值相同,将导致键值相同的UI组件被框架忽略,从而无法在父容器内显示。不提供keyGenerator时,默认使用index+JSON.stringify(item)。itemGenerator函数的调用顺序不一定和数组中的数据项相同,在开发过程中不要假设itemGenerator和keyGenerator函数是否执行及其执行顺序。循环渲染ForEach使用示例:@Entry@Componentstruct
MyComponent
{
@State
arr:
number[]
=
[10,
20,
30]
build()
{
Column({
space:
5
})
{
Button('Reverse
Array')
.onClick(()
=>
{
this.arr.reverse()
})
ForEach(this.arr,
(item:
number)
=>
{
Text(`item
value:
${item}`).fontSize(18)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年版施工项目代理合同合同范本版B版
- 2024年绿色建筑泥水班组劳务分包工程合同5篇
- 2024年聚酯树脂公路运输合同
- 2024年版物业管理授权合同
- 2025版航空航天劳动合同及太空劳动报酬约定3篇
- 2025版酒水物流配送及仓储管理服务合作协议3篇
- 2025版农业综合开发项目投资合同3篇
- 2025版清洁行业绿色环保技术创新合同2篇
- 2024年版标准化教师聘任合同范本一
- 二零二五年个人出租车承包合同中的服务质量监控与提升措施3篇
- 电大专科【计算机组网技术】机考网考形考题库及答案
- 外来文件管理制度
- 2024-2025学年佛山市南海区六上数学期末达标检测试题含解析
- 2024年浙江省单独考试招生文化课考试数学试卷真题(含答案详解)
- 2025年高考化学二、三轮复习策略讲座
- 2022年高考数学试卷(上海)(秋考)(空白卷)
- 湖南省长沙市2023-2024学年四年级上册期末数学试题
- 山东省济南市语文小升初2024年模拟试题与参考答案
- 装配式建筑复习试题及答案
- 空气动力学仿真技术:湍流模型:k-ε湍流模型原理与应用
- 榛子食品深加工生产项目可行性研究报告-2024年重点项目
评论
0/150
提交评论