鸿蒙4.0开发笔记之ArkTS语法基础的UI描述、基础组件的使用与如何查看组件是否有参数(八)

news2025/1/12 12:30:40

文章目录

    • 一、声明式UI描述
      • 1、无/有参数组件
      • 2、如何查看组件是否有参数
    • 二、Image组件的使用
    • 三、组件的属性设置
    • 四、补充
      • 1、使用组件的成员函数配置组件的事件方法
      • 2、配置子组件
      • 3、多组件嵌套

一、声明式UI描述

在HarmonyOS的ArkTS语法中,万物皆组件。ArkTS以声明方式组合和扩展组件来描述应用程序的UI,同时还提供了基本的属性、事件和子组件配置方法,帮助开发者实现应用交互逻辑。根据组件构造方法的不同,创建组件包含有参数和无参数两种方式。

1、无/有参数组件

无参数组件:
如果组件的接口定义没有包含必选构造参数,则组件后面的“()”不需要配置任何内容。例如,Divider组件不包含构造参数:

Column() {
  Text('HarmonyOS')
  Divider()
  Button('点我跳转')
}

有参数组件:
如果组件的接口定义包含构造参数,则在组件后面的“()”配置相应参数。例如mage组件的必选参数src。

2、如何查看组件是否有参数

(1)方法一:
寻找官方文档:找到文档下面的“API参考”
1.1.1
在目录树下找到“组件参考”,然后找到“基础组件”,最后就可以看到如button这些基础组件的使用说明了。
1.1.2
(2)方法二:
按住Ctrl键,然后将鼠标移动到组件名上,会出现一个下划线,点击一下就能够进入组件的定义。
1.2.1
在组件的定义再用同样的方式(Ctrl+鼠标左键)进入接口的定义。
2.2.2
比如在接口的定义中就可以看到Text组件参数的设定:?表示可选参数,若要填参数则可以传递string和resource类型的参数。同样,在Divider的接口函数中则可以看到不需要传递参数。
1.2.3

二、Image组件的使用

1、定义
Image为图片组件,常用于在应用中显示图片。Image支持加载string、PixelMap和Resource类型的数据源,支持png、jpg、bmp、svg和gif类型的图片格式。

2、网络图片类型调用(网络图片需要权限)
使用网络图片时,需要申请权限ohos.permission.INTERNET。具体申请方式请参考权限申请声明。申请位置为entry>src>main>resources>module.json5文件中。
3.1.1
更多申请相关事项参见官方文档:访问控制授权申请
申请完网络权限后,就可以放心地使用网络图片作为image参数了。

3、资源文件类型的调用(使用$r(‘app.media.图片名’))
以下便是调用每个新建项目默认存在的图标图片icon.png:
3.3.1
运行效果:
3.3.2
4、引用其他路径下的资源

//Image组件调用其他路径下的图片:必须加扩展名
        Image($rawfile('bg.jpg'))

而且还需要注意,资源名不能包括中文。

三、组件的属性设置

1、链式语法
在同一行同时设定某个组件的多个属性,可以无限延伸下去。不过为了可读性,建议每设置一个属性换一行。

Text('声明式UI组件').fontSize(50).fontColor(Color.Green).fontWeight(FontWeight.Bold)

2、属性设置时做运算

//属性设置时做运算:偶数则将宽设置为200,奇数行则设置宽为300
 Image($rawfile('bg.jpg')).width(this.n%2 === 0 ? 200 : 300)

3、绑定事件
注意:需要在定义变量n时加上@State修饰,这表明当n值发生改变时,将重新渲染整个页面。

@State n: number = 7

//绑定事件,每点击一次就加1
        Text("财富:" + this.n + "W").fontSize(30)
        Button('点我++')
          .onClick(()=>{
            this.n++
          })

4、呈现效果
4.4.1

四、补充

1、使用组件的成员函数配置组件的事件方法

myClickHandler(): void {
  this.counter += 2;
}
...
Button('add counter')
  .onClick(this.myClickHandler.bind(this))

2、配置子组件

如果组件支持子组件配置,则需在尾随闭包"{…}"中为组件添加子组件的UI描述。Column、Row、Stack、Grid、List等组件都是容器组件。(在这里,Column组件可以用{space:50}来增加行距)

Column({space:50}) {
  Text('Hello')
    .fontSize(100)
  Divider()
  Text(this.myText)
    .fontSize(100)
    .fontColor(Color.Red)
}

3、多组件嵌套

容器组件均支持子组件配置,可以实现相对复杂的多级嵌套。

Column() {
  Row() {
    Image('test1.jpg')
      .width(100)
      .height(100)
    Button('click +1')
      .onClick(() => {
        console.info('+1 clicked!');
      })
  }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1266993.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

每次吃一点ORB_Slam3代码 — 1. System类的初始化

文章目录 前言1. 代码调用位置2. 前置知识2.1 Sophus::SE3f 3. 代码细节3.1 System.h:3.2 System初始化函数: 小结 前言 ORB_SLAM3代码对于个人而言,感觉十分复杂。因为没有一些几何视图基础加上C薄弱,所以一直没法入门。基于这种…

防雷器的原理、用途、参数和应用领域

防雷器是一种用于保护电子设备和电气系统免受雷电过电压和感应雷电的装置,主要分为外部防雷器和内部防雷器两大类。外部防雷器主要包括接闪器、引下线和接地装置,用于防止直击雷对建筑物和设备的损害;内部防雷器主要包括浪涌保护器、等电位连…

利用人工优化的数据,改善搜索相关性算法

在着手改善搜索算法时,有哪些可用的工具?我们将和来自于 Adobe 和 Etsy 的客户一起就他们每天使用的一些工具和策略,是如何改进他们的搜索算法展开讨论。 为什么需要人工优化的数据? 通过挖掘个人对搜索结果的评估,您…

卡码网语言基础课 | 16. 出现频率最高的字母

目录 一、 哈希表 二、 编写解题 2.1 统计出现次数 2.2 解答 通过本次练习,将学习到C中哈希表的基础知识 题目: 给定一个只包含小写字母的字符串,统计字符串中每个字母出现的频率,并找出出现频率最高的字母,如果…

[数据结构]-map和set

前言 作者:小蜗牛向前冲 名言:我可以接受失败,但我不能接受放弃 如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、键值对…

上市公司-绿色专利申请、授权(2000-2022年)

一、数据介绍 数据名称:上市公司-绿色专利申请、授权 数据范围:A股上市公司 数据年份:2000-2022年 数据样本:56167条 数据来源:国家知识产权局、WIPO绿色专利清单 数据整理:自主整理 二、数据用途 数…

Tomcat 修改版本号

lib 目录下增加文件 /lib/org/apache/catalina/util/ServerInfo.properties ServerInfo.properties文件里面只需要输入server.info显示的版本号 其他可配置信息 server.infonginx server.number22.0 server.builtMay 11 2023 08:22:10 UTC 显示效果

解决掘金量化平台,赋权原因导致委托异常(委托价格低于标的[xxxx]当日的跌停价格)

文章目录 解决方法问题解析 解决方法 修改为全部使用不复权数据ADJUST_NONE进行回测,最新的版本支持分红配股了, 在交易的时候控制市值即可 问题解析 首先,已经设置数据参考前复权数据:run(backtest_adjustADJUST_PREV) 以长生…

图片去水印怎么弄?手把手教你几个去水印方法

在生活中,我们常常会遇到一些心仪的图片,然而这些图片往往带有水印或是不必要的杂物,如路过的行人、标志、商标等元素。这些元素通常位于图片的边角或中心,严重破坏了图片的整体美感,影响了我们的视觉体验。为了解决这…

怎样去除视频上的水印?这几个视频去水印方法简单无痕

作为全民自媒体时代,越来越多的人投身于自媒体行业,对于初学者,往往会遇到网上下载的视频素材会嗲有水印,影响二次创作以及视频观看度,那么怎样去除视频上的水印呢?别着急,今天分享三种视频去水…

2020年8月11日 Go生态洞察:Go 1.15版本发布深度解析

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

Active Directory 帐户锁定问题

Active Directory(AD)帐户可能由于多种原因而被锁定,IT 管理员需要发现帐户被锁定的原因并解锁它们,但是手动执行此操作是一项耗时且复杂的活动。 最重要的是,帐户锁定如此普遍的事实只会使解锁这些帐户更具挑战性&am…

新手必备!这款在线制作电子书神器,收藏起来慢慢学!

​随着互联网的普及,越来越多的人开始关注电子书市场。如果你是一名新手,想要尝试制作自己的电子书,那么可以跟着小编一起学习一下如何制作电子书! 首先找到一款合适自己的电子书制作神器,小编一直用的都是FLBOOK在线制…

【飞桨星河社区五周年线下工坊-杭州站】

? 欢迎大家参加杭州极客工坊,深入了解大模型前沿技术和创新应用,一站式体验AI原生应用开发? 精彩议程敬请期待~ ? 时间:2023年12月3日 14:00-17:30 ? 地点:杭州西湖区花蒋路3号西溪润泽园度假酒店 ? 主题&#xf…

TikTok革新挑战者:全球小众创作者的崛起

随着数字娱乐的快速发展,TikTok以其独特的短视频形式和开放的创作平台,成为全球范围内小众创作者崛起的推动者。本文将深入剖析TikTok在这一领域的革新,以及全球范围内小众创作者如何通过这一平台崭露头角。 TikTok:小众创作者的乐…

MES管理系统在智能工厂建设中的五个核心作用

随着制造业的数字化转型,智能工厂已经成为了现代工业生产的标志。而在智能工厂中,MES生产管理系统扮演着至关重要的角色。MES管理系统是一种用于管理和监控生产过程的软件系统,通过集成生产计划、资源调度、设备控制、质量管理等功能&#xf…

vue3-在自定义hooks使用useRouter 报错问题

文章目录 前言一、报错分析报错的Vue warn截图:查看文档 二、那么在hook要怎么引入路由呢? 前言 记录在vue3项目中,hook使用useRouter 报错问题 一、报错分析 报错的Vue warn截图: 警告 inject() can only be used inside setup…

zookeeper实操课程Acl 访问权限控制,命令行测试

本系列是zookeeper相关的实操课程,课程测试环环相扣,请按照顺序阅读测试来学习zookeeper。阅读本文之前,请先阅读----​​​​​​zookeeper 单机伪集群搭建简单记录(实操课程系列)。 阅读本文之前,请先阅读…

手机笔记工具怎么加密?

选择用手机笔记工具记事,大家可以记录很多学习笔记、读书笔记、私密日记等,手机作为随身携带的设备,记录相关的笔记比较快捷且方便,当手机笔记中记录的内容比较私密时,大家担心手机笔记会被别人误看,这时候…

跨境电商火爆出圈,自建商城平台如何评估商城源码的安全性?

近日,知名互联网评论人士阑夕的一则朋友圈刷屏。起因来自他在商家群里看到的一位跨境卖家后台晒单截图,说在速卖通上1天卖了快50万美元,比去年双11全周期还高,感叹“现在的跨境电商发展就如同10年前的天猫淘宝,潜力无限…