ArkTs基础语法-声明式UI-基本概念

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:位置设置) ArkTS声明式开发(通用属性:位置设置) 阅读详情

基本概念

  • 装饰器:用于装饰类、结构、方法及变量,并赋予其特殊的含义。

    例如:
    @Entry 有该装饰器的自定义组件,可以在UIAbility中使用,作为页面入口。该装饰器配合@Component装饰器使用
    @Component 自定义组件
    @State 表示组件中的状态变量,状态变化会出发UI刷新。
    @L

  • UI描述:以声明式的方式来描述UI的结构,在组件的build方法中。

  • 自定义组件:可复用的UI单元,可组合其他组件。

  • 系统组件:ArkUI框架中默认内置的基础和容器组件。例如:Column、Row、Text、Image、Button等。

  • 属性方法:ArkTs中,使用链式调用的方式来配置组件属性。

  • 事件方法:事件响应逻辑,也是使用链式调用的方式,设置如onclick方法等,在方法内部进行实现。

基础的组件一般就是由上述部分组成,如下图:
在这里插入图片描述
当然,也有一些其他的语法范式方便我们进行封装复用,如:

除此之外,ArkTS扩展了多种语法范式来使开发更加便捷:

  • @Builder/@BuilderParam:特殊的封装UI描述的方法,细粒度的封装和复用UI描述。

  • @Extend/@Styles:扩展内置组件和封装属性样式,更灵活地组合内置组件。

  • stateStyles:多态样式,可以依据组件的内部状态的不同,设置不同样式。

这些后续会讲到。

声明式UI描述

创建组件

在ArkTs的基础语法中,我们讲到类,实例化一个类,需要使用new关键字进行。而在UI组件中,创建组件是不需要使用new关键字的。

无参数

如果组件的接口定义没有包含必选的构造参数,则组件后面的()中可以不配置任何内容。

例如Button() Text()等包含可选参数的组件,Driver()等没有构造参数的组件。

有参数

如果组件的接口定义中包含了必选构造参数,则在组件后的()中需要配置相应的参数。
例如Image()组件,必选参数为src。

变量和表达式也可以用作参数赋值。

配置属性

组件的属性方法以.链式调用的方式配置样式和其他属性。

	Text(this.message)
       .id('HelloWorld')
       .fontSize(50)
       .fontWeight(FontWeight.Bold)
       .alignRules({
         center: { anchor: '__container__', align: VerticalAlign.Center },
         middle: { anchor: '__container__', align: HorizontalAlign.Center }
       })

配置事件

使用箭头函数配置组件的事件方法

	Button() {
        Text('跳转')
          .fontSize(30)
          .fontWeight(FontWeight.Bold)
      }
      .type(ButtonType.Capsule)
      .margin({ top: '0.00vp', right: '0.00vp', bottom: '150.00vp', left: '0.00vp' })
      .backgroundColor('#ff0000')
      .width('50%')
      .height('10%')
      .alignRules({
        center: { anchor: '__container__', align: VerticalAlign.Bottom },
        middle: { anchor: '__container__', align: HorizontalAlign.Center }
      })
      .onClick(() => {
        console.info('click second button')
        router.pushUrl({ url: 'pages/Second' }).then(() => {
          console.info('jump success')
        }).catch((err: BusinessError) => {
          console.error(`jump failed,errCode:${err.code},errMessage:${err.message}`)
        })
      })
    }
    .height('100%')
    .width('100%')

如需使用组件中的成员函数配置组件的事件方法,需要使用bind this。

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

ArkTs语法不推荐使用成员函数配合bind(this)的方式去配置组件的事件方法

使用声明的箭头函数,可以直接调用,不需要使用bind(this)

fn = () => {
  console.info(`counter: ${this.counter}`)
  this.counter++
}
...
Button('add counter')
  .onClick(this.fn)

配置子组件

如果组件是容器组件,则支持子组件配置,需要在组件声明后,紧随的闭包中添加子组件的描述。如Column Row List等组件。

	RelativeContainer() {
      Text(this.message)
        .id('SecondHelloWorld')
        .fontSize(50)
        .fontWeight(FontWeight.Bold)
        .alignRules({
          center: { anchor: '__container__', align: VerticalAlign.Center },
          middle: { anchor: '__container__', align: HorizontalAlign.Center }
        })

      Button() {
        Text('back')
          .fontSize('30')
          .fontWeight(FontWeight.Bold)
      }
      .type(ButtonType.Capsule)
      .margin({
        bottom: 50
      })
      .alignRules({
        center: { anchor: '__container__', align: VerticalAlign.Bottom },
        middle: { anchor: '__container__', align: HorizontalAlign.Center }
      })
      .width('50%')
      .height('10%')
      .backgroundColor('#ff0000')
      .onClick(() => {
        try {
          router.back()
        } catch (err) {
          let code = (err as BusinessError).code
          let message = (err as BusinessError).message
          console.info(`jump error:${code},${message}`)
        }
      })
    }
    .height('100%')
    .width('100%')
HarmonyOs 基础学习ArkTs语法 文章目录一、ArkTsArkTs的基本组成声明式UI描述自定义组件页面和组件生命周期@Builder装饰器@BuilderParam装饰器:引用@Builder函数@Styles装饰器@Extend装饰器stateStyles:多态样式状态管理@State装饰器@Prop装饰器@Link装饰器@Provide装饰器和@Consume装饰器@Observed装饰器和@ObjectLink装饰器LocalStorageAppStoragePersistentStorageEnvironment@Watch装饰器 阅读详情

相关推荐

HarmonyOS学习 -- ArkTS开发语言入门

ArkTS是HarmonyOS主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发者以更简洁、更自然的方式开发跨端应用。JavaScript是一种属于网络的高级脚本语言,已经被广泛应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。TypeScript是JavaScript的一个超集,它扩展了JavaScript的语法,通过在JavaScript的基础上添加静态类型定义构建而成,是一个开源的编程语言。

旭日的博客 2万+

鸿蒙5.0版开发:ArkTS组件通用属性(位置设置)

设置组件的对齐方式、布局方向和显示位置。

m0_73088370的博客 3516

深入浅出ArkTS:从基础语法到高级特性全面解析

JS属于前端浏览器语言,弱类型语言,灵活,功能强大。TS是微软设计出来的一门编程语言,是JS这门语言的超集,涵盖了JS核心的es5/6的内容,增加静态检擦类型推断等等,可以让开发过程中更加严谨,减少错误。 > `ArkTS`:鸿蒙官方主推的开发语言,高级编程语言。在`TS`基础上进行了扩展,推出了全新声明式的开发规范。相当于基于TS开发规则,有进行封装,将核心的内容封装起来次啊用声明式开发模式。

前端开发工程师 2649

鸿蒙next版开发:ArkTS组件通用属性(位置设置)

通过本文的介绍,你应该对HarmonyOS 5.0中ArkTS组件的位置设置有了基本的了解。位置设置是UI开发中的重要环节,合理利用这些属性可以使你的应用界面更加灵活和高效。希望本文能够帮助你在开发过程中更好地利用ArkTS的位置设置属性。

小淼淼的博客 1826

声明式UI语法

1、struct:自定义组件基于struct实现,struct + 自定义组件名 + {...}的组合构成自定义组件,不能有继承关系。对于struct的实例化,可以省略new。2、@Component:@Component装饰器仅能装饰struct关键字声明的数据结构。struct被@Component装饰后具备组件化的能力,需要实现build方法描述UI,一个struct只能被一个@Component装饰。

weixin_44196561的博客 1397

100天精通鸿蒙从入门到跳槽——第13天:ArkTS声明式UI 使用教程

本文主要介绍了ArkTS声明式UI的相关知识点,包括组件创建、属性配置、事件配置和子组件配置等方面。通过使用ArkTS,开发者可以以声明方式组合和扩展组件来描述应用程序的 UI,并提供了基本的属性、事件和子组件配置方法,帮助开发者实现应用交互逻辑。通过使用ArkTS声明式 UI,开发者可以更轻松地创建和配置应用程序的用户界面。这一特性提供了高效、便捷的开发体验,同时也为应用程序的交互逻辑提供了坚实的基础。

猫头虎技术团队:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:优快云WF,猫头虎承诺每年免费为100名C站创作者做账号流量诊断服务!全网搜:猫头虎技术团队,点击文章底部名片或直接私信我一切皆可谈,快找虎哥! 5万+

ArkUI框架,更懂程序员的UI信息语法

当设备尺寸变宽时,我可以通过原子布局的均分能力去实现页面布局的一致性,也可以通过栅格布局,去解决多尺寸多设备的动态布局问题。声明式开发框架成功解决了传统开发过程中,代码冗长的问题。但是在了解声明式开发框架的过程中,我不经想到一个问题:有没有方法,让我开发一次代码,就可以在多个设备上适配呢?刚刚提到的原子布局能力包含均分能力,折行能力,拉伸能力,缩放能力,延伸能力,占比能力和隐藏能力。为了解决这个问题,我便在ArkUI上实现了同样的功能,神奇的事情发生了,瞬间代码干净了很多,只用几行代码就实现了相同的功能。

HarmonyOSDev的博客 1177

【Unity3D渲染】Unity3d实现Photoshop的各种图层混合模式

Adobe Photoshop图层混合原理、Unity ShaderLab图层混合实现

a310989583的专栏 2434

鸿蒙 arkTs 定时器的使用

注意 setInterval 一定要 在后面绑定 当前的页面,否则funtion中访问变量会报undifined。.bind(this) ,不绑定的话,this的指向就是 funtion里面 了。@State message: string = '定时器'在 onPageshow()方法中调用定时器。Text("清空定时器")

puyaCheer的博客 5791

在 dell precision 7920 tower CentOS 8 Stream 上安裝nvidia驱动程序、Anaconda

简单记录一下如何在实验室dell precision 7920 tower CentOS 8 Stream上安装nvidia显卡驱动。

chen9046的博客 994

【RK3588 NPU性能调优实战】多线程异步推理YOLOv5,榨干6TOPS算力

本文详细解析了如何在RK3588 NPU上通过多线程异步推理优化YOLOv5目标检测性能,实现6TOPS算力的最大化利用。通过线程池设计、流水线化帧处理及避开内存带宽瓶颈等技巧,将NPU利用率从30%提升至82%,帧率显著提高至61.2FPS。文章还提供了环境配置、代码实现及性能对比数据,助力开发者高效部署AI模型。

weixin_29034963的博客 340

小白挑战一周上架元服务——ArkTS03

介绍ArkTS中基础知识,为开发元服务夯实基础

silence_xz的博客 1107

ABAP BAPI_PRODORD_CHANGE函数详解:如何高效重读生产订单主数据

本文深入解析ABAP BAPI_PRODORD_CHANGE函数在生产订单主数据高效处理中的应用。通过详细讲解函数架构、主数据重读机制及实战代码示例,帮助开发人员掌握生产订单数据的精准读取与更新技术,提升SAP系统集成与自动化处理效率。

weixin_29207149的博客 467

HarmonyOS(二)—— 初识ArkTS开发语言(下)之ArkTS声明式语法和组件化基础

ArkTS在TS的类型系统的基础上,做了进一步的扩展:定义了各种装饰器、自定义组件和UI描述机制,再配合UI开发框架中的UI内置组件、事件方法、属性方法等共同构成了应用开发的主体。在应用开发中,除了UI的结构化描述之外,还有一个重要的方面:状态管理。

hirezy 5110

YOLO26改进策略【多YAML融合】| UNetV2 + BiFormer + WIoU

Wise-IoU是一种基于IoU的损失函数,旨在解决目标检测中边界框回归损失函数在处理低质量训练数据时的问题。

Limiiiing的博客 218

2. 第一个 SAP CDS View 源代码的详细解析:CDS View 和底层自动生成 SQL View 的关系讲解

笔者前一篇教程文章,带着大家在 ABAP 系统创建了一个最简单的基于sflight数据库表的 CDS View:本文对这简单的 14 行源代码背后的知识点进行详细讲解。CDS 全称是 Core Data Services,它是一种数据建模技术,帮助开发者以更直观和高层的方式去描述数据库中所需的数据结构。在一个典型的 SAP ABAP 开发场景里,CDS 经常被用来编写各种用于报表、接口或业务逻辑的数据视图。通常,这些视图包含一系列注解。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1021

ArkTS声明式UI

ArkTS提供了声明式UI、状态管理等相应的能力,作为一款面向未来的编程语言,它致力于简化开发流程,提升开发者效率。通过将逻辑与界面分离,ArkTS使得应用程序的构建更加直观和模块化。在本篇文章中,我们将深入探讨ArkTS提供的这些能力,并通过实际代码示例来展示它们是如何工作的。

qq_40698086的博客 1598

车载以太网网络测试-27【SOME/IP-SD简述】

SOME/IP-SD协议是基于IP的可扩展面向服务中间件中的服务发现协议,是汽车电子和嵌入式系统中实现动态服务发现与通信的核心组件。该协议规范详细说明了协议SOME/IP服务发现(SOME/IP-SD)的格式、消息序列和语义。本文将对SOME/IP-SD协议进行详细介绍。

车载网络测试工程师的博客 1953

HarmonyOS-ArkTS基本语法及声明式UI描述

在初步了解了ArkTS语言之后,我们以一个具体的示例来说明ArkTS的基本组成。如下图所示,当开发者点击按钮时,文本内容从“Hello World”变为“Hello ArkUI”。图1示例效果图本示例中,ArkTS的基本组成如下所示。图2ArkTS的基本组成装饰器: 用于装饰类、结构、方法以及变量,并赋予其特殊的含义。

2301_81624474的博客 2355

第244篇 视觉SLAM后端之BA优化——Bundle Adjustment的原理

本文介绍了SLAM后端优化中的Bundle Adjustment(BA)技术。BA通过同时优化相机位姿和3D路标点位置,最小化重投影误差,解决前端估计的累积误差问题。文章详细讲解了BA的数学原理,包括目标函数构建、Gauss-Newton法和Levenberg-Marquardt法求解过程,以及利用稀疏性和Schur补加速计算的关键技术。对比了全量BA和增量BA的优缺点,并介绍了Ceres、g2o等工程实现工具。BA作为SLAM后端的核心算法,其理解深度直接影响系统性能优化能力。

郑伟强dev的专栏 345

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【HarmonyOS开发】ArkTS基础语法及使用(鸿蒙开发基础教程)

ArkTS是HarmonyOS生态的应用开发语言。 ArkTS提供了声明式UI范式、状态管理支持等相应的能力,让开发者可以以更简洁、更自然的方式开发应用。 同时,它在保持TypeScript(简称TS,是一种给 JavaScript 添加特性的语言扩展)基本语法风格的基础上,进一步通过规范强化静态检查和分析,使得在程序运行之前的开发期能检测更多错误,提升代码健壮性,并实现更好的运行性能。

meno的博客 4112

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

鸿蒙开发-ArkTS 语言-基础语法

基于官方文档学习ArkTS

所行皆坦途 5878

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

HarmonyOS:声明式UI语法

ArkTS以声明方式组合和扩展组件来描述应用程序的UI,同时还提供了基本的属性、事件和子组件配置方法,帮助开发者实现应用交互逻辑。

ChinaDragon10的博客 1644

ArkTS语法详解:从基础到高级的全方位指南

ArkTS语法详解:从基础到高级的全方位指南

嗨,欢迎来到我的 优快云 博客小天地!一名深耕多年的技术发烧友。在这里,我将把日常工作中积累的宝贵经验,从复杂架构设计的精妙之处,到代码优化的实战技巧,毫无保留地分享给大家。 4963

[HarmonyOSNext鸿蒙开发]1.ArkTS声明式开发:UI范式基本语法

就像搭乐高积木,系统组件是现成的积木块,而自定义组件是开发者自己设计的特殊积木。它能组合多个积木、重复使用,还能根据数据变化自动更新外观。代码复用:像写好的菜谱,重复使用不重写代码逻辑分离:把界面和数据处理分开,像把食材和烹饪步骤分开维护方便:改一个地方,所有用到的地方自动更新。

qq_39277137的博客 1192

【HarmonyOS(ArkTS)学习笔记-3】认识ArkTS语言

【HarmonyOS(ArkTS)学习笔记-3】认识ArkTS语言

weixin_62984531的博客 3785
上一篇: ArkTs基础语法
下一篇: ArkTs基础语法-声明式UI-自定义组件
gitzzp
博客等级 码龄11年 307粉丝 60原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值