首页 > 其他分享 >十、条件渲染

十、条件渲染

时间:2023-12-15 10:11:06浏览次数:25  
标签:渲染 else content item State 条件 组件

if/else 条件渲染

1.支持if、else和else if 语句。

2.if、else if 后跟随的条件语句可以使用状态变量。

3.允许在容器组件内使用,通过条件渲染语句构建不同的子组件。

4.当if、else if 后跟随的状态判断中使用的状态变量值变化时,条件渲染语句会进行更新

5.条件可以包括Typescript表达式

if(表达式){
  组件内容1
}else{
  组件内容2
}

案例代码

/**
 * author:创客未来
 * copyright:com.ckFuture.hrb
 * 分支渲染
 */
@Entry
@Component
struct Branch {
  @State isStudy: boolean = false
  build() {
    Row() {
      Column() {
        Button('toggle').fontSize(50).margin({top:20})
          .onClick(() => {
            this.isStudy = !this.isStudy
          })
        if(this.isStudy){
          Branch_Comp({content:'学习鸿蒙之前-愁容满面'})
        }else {
          Branch_Comp({content:'学习鸿蒙之后-喜上眉梢'})
        }
      }
      .width('100%')
    }
    .height('100%')
  }
}

@Component
struct Branch_Comp{
  content:string
  build() {
    Column() {
      Text(this.content)
        .fontSize(30)
        .margin({top:30})
    }
  }
}

 

ForEach 循环渲染

ForEach接口基于数组类型数据来进行循环渲染,需要与容器组件配合使用,且接口返回的组件盈当是允许包含在ForEach父容器组件中的子组件。例如:ListItem组件要求ForEach的父容器组件必须为List组件。

 

/**
 * author:创客未来
 * copyright:com.ckFuture.hrb
 * 循环渲染
 * todo:重点注意键值生成器返回的数据,保证唯一性。否则会有问题。
 */
@Entry
@Component
struct Loop {
  @State message: string = '循环渲染'
  @State product: string[] = ['PC','问界汽车',"平板",`手环`,'PC']

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
        Divider()
        ForEach(this.product, (item) => {
          Text(item).fontSize(30)
        }, (item) => {
          //键值生成器
            return item
        })
      }
      .width('100%')
    }
    .height('100%')
  }
}

数据的唯一性 

 

/**
 * author:创客未来
 * copyright:com.ckFuture.hrb
 * 循环渲染
 * todo:重点注意键值生成器返回的数据,保证唯一性。否则会有问题。
 */
@Entry
@Component
struct Loop {
  @State message: string = '循环渲染'
  //@State product: string[] = ['PC','问界汽车',"平板",`手环`,'PC']
  @State harmony:object[] =[
    {
      id:'001',
      title:'helloworld',
      content:'入门代码编写'
    },
    {
      id:'002',
      title:'跳转',
      content:'多种语言页面跳转'
    },
    {
      id:'003',
      title:'ArkTS',
      content:'详细学习arkts语法内容'
    },
    {
    id:'004',
    title:'ArkTS',
    content:'详细学习arkts语法内容'
  }
  ]

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
        Divider()
        ForEach(this.harmony, (item) => {
          Text(`${item.id} - ${item.title}`).fontSize(30)
        }, (item) => {
          //键值生成器
            return item.id
        })
      }
      .width('100%')
    }
    .height('100%')
  }
}

 

标签:渲染,else,content,item,State,条件,组件
From: https://www.cnblogs.com/ckfuture/p/17902762.html

相关文章

  • Excel-设定格式化条件
    1.设定格式化选取想筛选的栏位所在列--功能区右上角“条件格式”--自行设定条件和突出显示样式栏位下方单元格新增突出显示的内容会自动填充显示样式2.更改/删除条件选取要更改的列--条件格式--管理规则--编辑规则--可重新指定条件删除条件--在管理规则內直接选取规则--点“—”......
  • 在 JMeter 中使用 JSON 提取器提取特定条件下的值
    当你需要在JMeter中对接收到的JSON响应进行处理时,JSON提取器是一个非常有用的工具。在本文中,我们将讨论如何使用JSON提取器来提取特定条件下的值,以满足你的需求。问题描述假设你收到了以下JSON格式的响应结果:{"flag":"success","data":{"list":......
  • 九、条件控制与循环
    九、条件控制与循环9.1条件判断​ 有的时候在执行任务的时候需要对不同的情况做判断,以此来决定是否执行某些任务。什么情况下需要使用条件判断?判断主机的硬件资源,如CPU、内存、磁盘空间是否满足要求,如满足再执行task捕获一个命令的输出,根据命令输出结果的不同触发不同的task......
  • 高校刮起元宇宙风!3DCAT实时云渲染助力川轻化元校园建设
    元宇宙,是一个虚拟的网络世界,它与现实世界相互连接,为人们提供了一个身临其境的数字体验。元宇宙的概念并不新鲜,早在上个世纪就有科幻作家和电影导演对它进行了想象和创造。但是,随着科技的发展,特别是5G、AI、XR等前沿技术的突破,元宇宙的构建和发展已经成为可能,甚至成为了一种趋势。......
  • uniapp开发——纯原生渲染nvue调用uni.makePhoneCall没反应的处理办法
    uni.makePhoneCall(OBJECT)|uni-app官网(dcloud.net.cn)正常情况下,manifest.json配置拨打电话的权限就可以了:配置权限后重新打包,真机运行应该就可以正常的拨打电话了。如果API没反应,那么可以试试下边这种不弹出询问框直接拨打电话的方法:callMobile(){letmobile......
  • 让艺术触手可及!3DCAT实时云渲染赋能真浪数字艺术馆首展
    2023年5月18日,由真浪数字艺术和EZVR联合打造的真浪数字艺术馆首展–「破界·交织」让艺术更自由,正式与大家相见。此次展览分为五个主题展馆,汇聚了来自全球各领域的19位青年数字艺术家一同探讨虚实共生、人机共生和万物共生的艺术创作。真浪数字艺术馆由杭州虚拟人科技有限公司......
  • 何恺明新作:简单框架达成无条件图像生成新SOTA!与MIT合作完成
    前言 大佬何恺明和MIT师生一起开发了一个自条件图像生成框架,名叫RCG。这个框架结构非常简单但效果拔群,直接在ImageNet-1K数据集上实现了无条件图像生成的新SOTA。本文转载自新智元仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技......
  • 渲染农场对工业产品渲染带来的意义与优势?
    随着科技的进步,利用精细渲染图来呈现和推广工业设计的创新已成为行业标准。这些图像在产品研发、设计评审和营销阶段起着关键作用,同时对产品最终的成功也产生深远影响。然而,由于产品设计日渐复杂,制作渲染图的任务变得极具挑战性,同时耗费时间和财力。在这背景下,渲染农场的出现成为......
  • 包装效果图渲染技巧:怎么用云渲染省钱、省时间
    在今天这个市场竞争白热化的时代,一个产品的包装设计往往决定了它在架上是否能够脱颖而出。因此,品牌在推向市场前精心设计的包装效果图显得尤为重要。在这里,我们将探究包装效果图渲染的关键性、渲染技巧及云渲染技术如何在提升渲染品质与降低成本上发挥其作用。包装效果图渲染的......
  • 云渲染对高层住宅立面渲染图优势、作用、影响
    建筑设计不仅体现了技术的精妙,更呈现出艺术的美感。在这个过程中,立面效果图的重要性不言而喻,它以直观的形式展示设计师的创新理念和细节,使人们能深入感受到设计的美学意义和实用性。随着科技的高速发展,云渲染正成为制作高层住宅设计中立面效果图的重要工具,为设计师带来极大的便利......