0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

最通俗易懂的ArkTS语言入门指南

OpenHarmony技术社区 来源:OST开源开发者 2023-06-18 15:12 次阅读

本文为我整理出来最通俗易懂的 ArkTS 语言入门指南。

创建项目

打开我们的 DevEco Studio,进入以下界面:

88b5753a-0da6-11ee-962d-dac502259ad0.png

点击 Create Project,进行创建:

88bd5188-0da6-11ee-962d-dac502259ad0.png

这里帮我们默认选好第一个了,我们直接点 Next 就可以进入下一步完成创建。

88c49308-0da6-11ee-962d-dac502259ad0.png

这样我们的新的项目就创建完成了:

88d0b606-0da6-11ee-962d-dac502259ad0.png

这样,我们的项目就创建好了。

基本语法概述

当我们打开这个 hello world 的时候,是不是整个人都有些懵?不知道从哪里下手了是不是呀?

不要紧,咱们来把它分解开来:

88de14f4-0da6-11ee-962d-dac502259ad0.png

就可以把他们拆成这几个部分了,如果看不懂可以暂时忽略下面冒号后面的内容:

装饰器:用于装饰类、结构、方法以及变量,并赋予其特殊的含义。如上述示例中 @Entry、@Component 和 @State 都是装饰器,@Component 表示自定义组件,@Entry 表示该自定义组件为入口组件,@State 表示组件中的状态变量,状态变量变化会触发 UI 刷新。

UI 描述:以声明式的方式来描述 UI 的结构,例如 build() 方法中的代码块。

自定义组件:可复用的 UI 单元,可组合其他组件,如上述被 @Component 装饰的 struct Hello。

系统组件:ArkUI 框架中默认内置的基础和容器组件,可直接被开发者调用,比如示例中的 Column、Text、Divider、Button。

属性方法:组件可以通过链式调用配置多项属性,如 fontSize()、width()、height()、backgroundColor() 等。

事件方法:组件可以通过链式调用设置多个事件的响应逻辑,如跟随在Button后面的 onClick()。

解释这些东西一大堆,对新手来说,理解有那么一点不容易,只要记住这个大概的格式,就像这个样子。

@Entry
@Component
structIndex{
//放你写的数据

build(){
//放你写的页面代码

}
}
你所需要写的东西就可以直接往里面填了。

布局

下面的内容有些复杂,新手看不懂可以暂时只看线性布局,这个是我们最常用的一种布局方式。

①线性布局(Row、Column)

线性布局(Row、Column):如果布局内子元素为复数个,且能够以某种方式线性排列时优先考虑此布局。

②层叠布局(Stack)

层叠布局(Stack):组件需要有堆叠效果时优先考虑此布局,层叠布局的堆叠效果不会占用或影响其他同容器内子组件的布局空间。

例如 Panel 作为子组件弹出时将其他组件覆盖更为合理,则优先考虑在外层使用堆叠布局。

③弹性布局(Flex)

弹性布局(Flex):弹性布局是与线性布局类似的布局方式。区别在于弹性布局默认能够使子组件压缩或拉伸。

在子组件需要计算拉伸或压缩比例时优先使用此布局,可使得多个容器内子组件能有更好的视觉上的填充容器效果。

④相对布局(RelativeContainer)

相对布局(RelativeContainer):相对布局是在二维空间中的布局方式,不需要遵循线性布局的规则,布局方式更为自由。

通过在子组件上设置锚点规则(AlignRules)使子组件能够将自己在横轴、纵轴中的位置与容器或容器内其他子组件的位置对齐。

设置的锚点规则可以天然支持子元素压缩、拉伸,堆叠或形成多行效果。在页面元素分布复杂或通过线性布局会使容器嵌套层数过深时推荐使用。

⑤栅格布局(GridRow、GridCol)

栅格布局(GridRow、GridCol):栅格是多设备场景下通用的辅助定位工具,通过将空间分割为有规律的栅格。

栅格不同于网格布局固定的空间划分,可以实现不同设备下不同的布局,空间划分更随心所欲,从而显著降低适配不同屏幕尺寸的设计及开发成本,使得整体设计和开发流程更有秩序和节奏感,同时也保证多设备上应用显示的协调性和一致性,提升用户体验。推荐内容相同但布局不同时使用。

⑥媒体查询(@ohos.mediaquery)

媒体查询(@ohos.mediaquery):媒体查询可根据不同设备类型或同设备不同状态修改应用的样式。例如根据设备和应用的不同属性信息设计不同的布局,以及屏幕发生动态改变时更新应用的页面布局。

⑦列表(List)

列表(List):使用列表可以轻松高效地显示结构化、可滚动的信息。在 ArkUI 中,列表具有垂直和水平布局能力和自适应交叉轴方向上排列个数的布局能力,超出屏幕时可以滚动。列表适合用于呈现同类数据类型或数据类型集,例如图片和文本。

⑧网格(Grid)

网格(Grid):网格布局具有较强的页面均分能力,子组件占比控制能力,是一种重要自适应布局。

网格布局可以控制元素所占的网格数量、设置子组件横跨几行或者几列,当网格容器尺寸发生变化时,所有子组件以及间距等比例调整。

推荐在需要按照固定比例或者均匀分配空间的布局场景下使用,例如计算器、相册、日历等。

⑨轮播(Swiper)

轮播(Swiper):轮播组件通常用于实现广告轮播、图片预览、可滚动应用等。

使用如下:

暂时看不懂也没关系,我们暂时只看用的最多的线性布局

线性布局分为两种:

一种是竖直方向的线性布局 Column

另一种是水平方向的线性布局 Row

88ec708a-0da6-11ee-962d-dac502259ad0.png

我们把他们加入我们写的代码中:

@Entry
@ComponentstructIndex{
//放你写的数据
build(){
Row(){
Column(){
//放你写的组件
}
}
}
}
这样页面布局就写好了,下面我们要开始在页面布局中写组件了。

组件

下面我们就在我们的页面中添加组件。 常见的组件有:

按钮

单选框

切换按钮

进度条

文本显示

文本输入

自定义弹窗

视频播放

XComponent

今天我们先来看一下按钮和文本显示。

①组件格式

组件的格式基本上都是这个样子:

88f56e38-0da6-11ee-962d-dac502259ad0.png

②文本组件使用

这个我们点右边的这个小眼睛可以预览效果:

8901831c-0da6-11ee-962d-dac502259ad0.png

也就是这个样子:

890d6af6-0da6-11ee-962d-dac502259ad0.png

同样的,我们在线性布局的下面加上修饰的东西,可以让这个文字显示在屏幕中央。

8916a166-0da6-11ee-962d-dac502259ad0.png

.width('100%') 是让垂直布局的宽度占据整个屏幕的宽度,让文本位于左右居中。 同理 .height('100%') 是让水平布局的高度占据整个屏幕的高度,让文本上下居中。

③按钮组件使用

然后我们可以增加一个按钮 Bottom 组件:

@Entry
@Component
structIndex{
@Statemessage:string='HelloWorld‘
build(){
Row(){
Column(){
//文本组件
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
//按钮组件
Button('按钮中的内容')
.onClick(()=>{//点击
//点击按钮后发生的事情
})
}
.width('100%')
}
.height('100%')
}

}

例如我用来演示的这个:

89218de2-0da6-11ee-962d-dac502259ad0.png

点击按钮后,message 的内容就会发生变化,点击按钮后的效果如下:

892bd23e-0da6-11ee-962d-dac502259ad0.png

我们今天的内容就到这里。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • HarmonyOS
    +关注

    关注

    79

    文章

    1830

    浏览量

    29261

原文标题:HarmonyOS开发:ArkTS入门

文章出处:【微信号:gh_834c4b3d87fe,微信公众号:OpenHarmony技术社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    发酵罐搅拌器轴磨损修复方法

    这样修复发酵罐搅拌器轴磨损通俗易懂
    发表于 04-24 18:43 0次下载

    鸿蒙OS开发实战:【ArkTS 实现MQTT协议(2)】

    1. 协议传输通道仅为TCPSocket 2. 基于HarmonyOS SDK API 9开发 3. 开发语言ArkTS,TypeScript
    的头像 发表于 04-01 14:48 599次阅读
    鸿蒙OS开发实战:【<b class='flag-5'>ArkTS</b> 实现MQTT协议(2)】

    ArkTS语言基础类库-解析

    ArkTS语言基础类库是HarmonyOS系统上为应用开发者提供的常用基础能力,主要包含能力如下图所示。 图1 ArkTS语言基础类库能力示意图 提供[异步并发和多线程并发]的能力。
    发表于 02-20 16:44

    鸿蒙语言ArkTS(更好的生产力与性能)

    ArkTS是鸿蒙生态的应用开发语言 ArkTS提供了声明式UI范式、状态管理支持等相应的能力,让开发者可以以更简洁、更自然的方式开发应用。 同时,它在保持TypeScript(简称TS)基本语法
    发表于 02-17 15:56

    鸿蒙开发之ArkTS基础知识

    一、ArkTS简介 ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配了鸿蒙的ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开
    的头像 发表于 01-24 16:44 601次阅读
    鸿蒙开发之<b class='flag-5'>ArkTS</b>基础知识

    如何通俗易懂地解释卷积?

    在本问题 如何通俗易懂地解释卷积?中排名第一的马同学在中举了一个很好的例子(下面的一些图摘自马同学的文章,在此表示感谢),用丢骰子说明了卷积的应用。
    发表于 12-26 17:36 150次阅读
    如何<b class='flag-5'>通俗易懂</b>地解释卷积?

    通俗易懂的PCB爆板原因以及玻璃转换温度

    【科普】通俗易懂的PCB爆板原因以及玻璃转换温度
    的头像 发表于 11-24 16:01 420次阅读
    <b class='flag-5'>通俗易懂</b>的PCB爆板原因以及玻璃转换温度

    FFT原理通俗易懂的解释

    FFT原理通俗易懂的解释  傅里叶变换(Fourier Transform,简称FFT)是一个广泛应用的数学工具,它可以将一个连续或离散信号分解成一系列单一的正弦函数,这些正弦函数名称为频率成分
    的头像 发表于 09-07 16:35 1646次阅读

    HarmonyOS优选主力应用开发语言-ArkTS概述

    ArkTS是HarmonyOS优选的主力应用开发语言ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集。因此,在学习ArkT
    发表于 06-09 10:52

    HarmonyOS/OpenHarmony应用开发-ArkTS语言基本语法说明

    的封装和复用UI描述。 @Extend/@Style:扩展内置组件和封装属性样式,更灵活地组合内置组件。 stateStyles:多态样式,可以依据组件的内部状态的不同,设置不同样式。*附件:HarmonyOSOpenHarmony应用开发-ArkTS语言基本语法说明.d
    发表于 06-01 10:25

    什么是DFM可制造性分析?

    可能有人都不知道这个岗位,那我换个通俗易懂的解释。
    的头像 发表于 05-31 10:25 1445次阅读
    什么是DFM可制造性分析?

    图说卡尔曼滤波 一份通俗易懂的教程

    卡尔曼滤波(Kalman filter)是一种高效的自回归滤波器,它能在存在诸多不确定性情况的组合信息中估计动态系统的状态,是一种强大的、通用性极强的工具。它的提出者,鲁道夫.E.卡尔曼,在一次访问NASA埃姆斯研究中心时,发现这种方法能帮助解决阿波罗计划的轨道预测问题,后来NASA在阿波罗飞船的导航系统中确实也用到了这个滤波器。最终,飞船正确驶向月球,完成了人类历史上的第一次登月。
    发表于 05-18 10:24 0次下载

    瑞萨 38D5 入门套件快速入门指南

    瑞萨 38D5 入门套件快速入门指南
    发表于 04-28 19:43 0次下载
    瑞萨 38D5 <b class='flag-5'>入门</b>套件快速<b class='flag-5'>入门</b><b class='flag-5'>指南</b>

    瑞萨 3803L 入门套件快速入门指南

    瑞萨 3803L 入门套件快速入门指南
    发表于 04-28 19:42 0次下载
    瑞萨 3803L <b class='flag-5'>入门</b>套件快速<b class='flag-5'>入门</b><b class='flag-5'>指南</b>

    Renesas 7542入门套件快速入门指南

    Renesas 7542 入门套件快速入门指南
    发表于 04-28 19:42 0次下载
    Renesas 7542<b class='flag-5'>入门</b>套件快速<b class='flag-5'>入门</b><b class='flag-5'>指南</b>