版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
渲染控制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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 金方案高考生物人教一轮复习细胞学说多种多样的细胞教案
- 知识点专题六现代文阅读说明文试题四升五年级语文教案
- 新人教版一年级上册认识和市公开课金奖市赛课教案
- 现代企业管理财务管理教案
- 初中初一语文孙权劝学教案(2025-2026学年)
- 面积守恒大班教案
- 货物对换协议书
- 收旧电瓶协议书
- 贷款入股协议书
- 调料供应协议书
- JBT 13675-2019 筒式磨机 铸造衬板 技术条件
- 劳动合同范本模板打印
- 生命伦理学:生命医学科技与伦理智慧树知到期末考试答案章节答案2024年山东大学
- 纪检监察信访知识讲座
- 2024年合同知识产权审查表-(含附件)
- 智能教育:科技驱动下的学校革新
- 汉字笔画练习字帖
- 酒店住宿和餐饮行业企业安全风险分级管控清单
- 手机靓号抵押借款合同
- GB/T 26059-2010钛及钛合金网板
- 羊的品种课件
评论
0/150
提交评论