ArkTS 基础语法:声明式 UI 描述与自定义组件

server/2025/1/16 0:08:58/

1. ArkTS 简介

ArkTS 是 HarmonyOS 应用开发中的一种编程语言,它结合了 TypeScript 的类型检查和声明式 UI 描述方式,帮助开发者更高效地构建用户界面。

2. 声明式 UI 描述

ArkTS 使用声明式语法来定义 UI 结构,通过组件、属性和事件配置实现用户界面开发。

2.1 创建组件

ArkTS 提供了丰富的内置组件,如 TextButtonImage 等,使用这些组件可以快速构建界面。

@Entry
@Component
struct SimpleUI {build() {Text("欢迎使用 ArkUI").fontSize(24).textAlign(TextAlign.Center);}
}
2.2 配置属性

通过链式方法为组件配置属性,使 UI 元素具有特定的样式或行为。

Text("设置字体大小与颜色").fontSize(20).textColor(Color.Red).italic(true);
2.3 配置事件

为组件绑定事件处理器以响应用户交互。

 @State myTest: uiltin">string = "world";Text(`hello ${this.myTest}`).fontSize(50);Button('点我啊').onClick(()=>{this.myTest = 'ArkTS'})
2.4 配置子组件

使用容器组件如 ColumnRow 将多个子组件组合在一起。

Column() {Text("标题 1").fontSize(18);Text("标题 2").fontSize(16);
}

3. 自定义组件

在 ArkTS 中,可以通过定义自定义组件来实现代码的复用与模块化。

/** 封装组件,并调用* */
@Entry
@Component
struct Page{build() {Column(){// 调用组件,显示内容Header()}}
}// 创建自定义组件
@Component
export struct Header{build() {Column(){Text('Header').width('100%')  // 宽度.height(60) // 高度.backgroundColor(Color.Red) // 背景色.textAlign(TextAlign.Center)  // 对齐方式居中}}
}

使用其他文件中已经封装好的组件

/*调用其他 文件中 export 的组件*/
import { Header} from './Page'@Entry
@Component
struct Page1 {build() {Column(){Header()}}
}

4. 通用属性

ArkTS 提供了大量通用属性,用于设置组件的样式和布局。

属性描述示例
fontSize()设置字体大小Text().fontSize(16)
textColor()设置文字颜色Text().textColor(Color.Red)
width()设置宽度Button().width(200)
height()设置高度Button().height(50)
padding()设置内边距Column().padding(10)
margin()设置外边距Row().margin(15)

华为官方文档

5. 尺寸设置:px 与 vp 的区别

单位描述应用场景
px物理像素单位,表示屏幕上的真实像素大小。精细调整组件尺寸时使用
vp虚拟像素单位,适应不同分辨率的屏幕。适用于跨设备 UI 设计

6. 开发示例:计数器组件

代码示例
@Entry
@Component
struct CounterComponent {@State count: uiltin">number = 0;build() {Column() {Text(`当前计数:${this.count}`).fontSize(24).textAlign(TextAlign.Center);Button("点击增加计数").onClick(() => {this.count++;}).width(200).height(50);}}
}
代码解析
语法/方法描述
@State定义组件状态,状态变化时自动刷新 UI
this.count++按钮点击时增加计数器数值
.fontSize()设置文字的字体大小
.onClick()设置按钮点击事件

凡是过去,皆为序章;凡是未来,皆有可期。


http://www.ppmy.cn/server/158312.html

相关文章

RuoYi-Vue-Plus 加入 GitCode:驱动多租户后台管理创新发展

在当今数字化进程持续推进的时代背景下,企业对后台管理系统的要求不断攀升,高效、安全、灵活与可拓展性成为关键要素。近日,RuoYi-Vue-Plus 正式加入 GitCode,为多租户后台管理领域带来全新动力与机遇,有力推动行业技术…

什么是同步电路与异步电路?有什么区别

同步电路与异步电路的本质区别在于:数据的更新和逻辑变化是否由统一的时钟信号(clock)来统一调度。 同步电路:所有的存储单元(触发器、寄存器)都在同一个时钟沿(通常是上升沿,或下降…

Windows安装Jenkins——及修改主目录、配置简体中文、修改插件源

一、简介 Jenkinshttps://www.jenkins.io/zh/ Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。 二、Windows安装配置Jenkins2.479 2.1、J

《盘古大模型——鸿蒙NEXT的智慧引擎》

在当今科技飞速发展的时代,华为HarmonyOS NEXT的发布无疑是操作系统领域的一颗重磅炸弹,其将人工智能与操作系统深度融合,开启了智能新时代。而盘古大模型在其中发挥着至关重要的核心作用。 赋予小艺智能助手超强能力 在鸿蒙NEXT中&#xf…

uniapp小程序中隐藏顶部导航栏和指定某页面去掉顶部导航栏小程序

uniappvue3开发小程序过程中隐藏顶部导航栏和指定某页面去掉顶部导航栏方法 在page.json中 "globalStyle": {"navigationStyle":"custom",}, 如果是指定某个页面关闭顶部导航栏,在style中添加"navigationStyle": "cus…

提升Docker运维效率:实用技巧与最佳实践

随着容器化技术的普及,Docker已经成为现代应用部署和运维的核心工具之一。无论是在本地开发、持续集成,还是在生产环境中,Docker都能帮助我们轻松地打包、分发和运行应用程序。然而,随着Docker容器数量的增多,日常的容…

《系统爆破:MD5易破,后台登录可爆破?》

声明:笔记的只是方便各位师傅学习知识,以下代码、网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。 爆破Sales系统 一、爆破MD5 场景:已知MD5的加密字符串,如何得知明…

基于OQuPy的量子编程实例探究:理论、实践与展望

基于OQuPy的量子编程探究:理论、分析与实践 一、引言 1.1 研究背景与意义 近年来,量子计算作为一种革命性的计算范式,在科学界与产业界引发了广泛关注。它依托量子力学原理,运用量子比特(qubit)进行信息处理,与传统计算相比,具备并行处理、指数级加速等显著优势,为解…