HarmonyOS(鸿蒙)应用开发——(一)

目录

1  创建hellopro项目

2  了解ArkTS

3  了解ArkTS的组件

4  组件介绍

4.1 常用基础组件:

4.1.1 Text

4.1.2 Button

4.1.3 TextInput

4.2 容器组件

4.2.1 Column

4.2.2 Row

5  案例——实现一个简易登录页面

5.1 在实现预览效果之前,我们首先要进行分析,如何才能实现上述效果呢?

5.2 创建案例页面文件

6  如何备份这个案例

7  案例——实现头部文件、提交按钮

8  案例——点击数字使其增加


 本篇文章主要介绍在DevEco Studio中创建一个名为hellopro的项目,所以在创建前你的电脑上要安装好DevEco Studio软件,通过几个组件来实现一个简易登录界面,实现头部文件、提交按钮,点击数字使其增加等案例。

1  创建hellopro项目

1. 打开DevEco Studio,点击“Create Project”,进入项目创建页面/模版配置页。

2. 选择项目模版,选择“Application”,然后选择“Empty Ability”,单击“Next”进入工程配置页。

3. 默认项目名称为“MyApplication”。

4. 此处我们可以修改项目名称为“hellopro”,其余默认即可。

Save location可以选择要保存的路径;

Compile SDK是编译的API版本,这里默认选择API9;

Model模型选择Stage。

然后单击“Finish”完成工程创建,等待工程同步完成。

5. 创建完成后进入IDE界面,刚进入时右侧没有显示“Previewer”,等待加载。

6. 右侧出现“Previewer”后可点击显示预览效果。

2  了解ArkTS

ArkTS是HarmonyOS的主要开发语言,了解其之前先了解JavaScript、TypeScript语言。

JavaScript:一种网络高级脚本语言,应用于Web应用开发,可以为网页添加动态功能,实现交互。

TypeScript:JavaScript的一个超集,扩展了JS语法,在JS基础上添加了静态类型定义构建。

ArkTS:兼容TS语言,在TS基础上扩展了声明式UI、状态管理、并发任务,ArkTS是TypeScript的超集。

3  了解ArkTS的组件

如图,是项目进入后默认显示界面。可以看到在“hellopro/entry/src/main/ets/pages”下默认已经创建好了一个名为Index.ets的文件,文件中输入了“Hello World”文本并对其进行了样式的设置。

ArkTS通过@Component和@Entry装饰器,来构成一个自定义组件。通过struct声明组件名。

使用@Entry和@Component装饰的自定义组件作为页面的入口。

使用@Component装饰的自定义组件。

自定义组件使用build方法来进行UI描述。

build方法内可以容纳内置组件和其他自定义组件,如Column和Text都是内置组件。

4  组件介绍

下面列举出本篇文章中所使用的一些组件。

4.1 常用基础组件:

4.1.1 Text

Text组件:用于在界面上展示一段文本信息,可以包含子组件Span。

4.1.2 Button

Button:按钮组件。通常用于响应用户的点击操作,其类型包括胶囊按钮、圆形按钮、普通按钮。

4.1.3 TextInput

TextInput:单行文本输入框组件。

4.2 容器组件

首先了解什么是布局容器:

ArkTS中提供了Column和Row容器来实现线性布局。线性布局容器表示按照垂直方向或者水平方向排列子组件的容器。

4.2.1 Column

Column:表示沿垂直方向布局的容器,可以包含子组件。

4.2.2 Row

Row:表示沿水平方向布局的容器,可以包含子组件。

5  案例——实现一个简易登录页面

实现一个简易登录页面,预览效果如图。

5.1 在实现预览效果之前,我们首先要进行分析,如何才能实现上述效果呢?

可以看出图中有“手机号”、“验证码”两组文本,那么就要用到Text组件来实现;

文本后面是文本输入框,用TextInput单行文本输入框组件。

下面有“重置”、“登录”两个按钮,则用到Button按钮组件;两个按钮背景颜色不同可以使用.backgroundColor来设置。

5.2 创建案例页面文件

我们可以新建一个ArkTS文件来编辑代码实现页面效果。如图,在“hellopro/entry/src/main/ets/pages”文件夹下选中pages并右击,点击New>ArkTS File。

为ArkTS文件取名为“Login”。

创建完成后,在Login.ets文件里面没有代码内容。

在Login.ets中编辑如下代码并保存,完成好后点击“Previewer”预览。

@Entry                     // 装饰器,代表的是这个页面入口地方@Component                 // 装饰器struct Login {             // 自定义组件build() {                // build函数,用于构建页面UI//鸿蒙提供很多内置UI组件可以直接使用,内置组件字母大写Column() {Row() {Text('手机号')TextInput()}Row() {Text('验证码')TextInput()}Row() {Button('重置').backgroundColor('#cccccc')Button('登录')}}}}

预览效果如图,简易登录页面成功实现。

6  如何备份这个案例

当我们成功实现这个案例后,后续还会创建并实现其他页面效果,将这些文件放在同一文件夹中可能会感到杂乱,这时我们就要对当前实现的效果进行复制备份。

1. 选中main文件夹后右击并点击Copy,或者选中main文件夹后按键盘Ctrl+C组合键进行复制。

2. 复制好后选中src文件夹右击并点击Paste,或者选中src文件夹后按键盘Ctrl+V组合键进行粘贴。

3. 点击后弹出提示框,在New name中我们可以修改文件名,To directory默认即可,修改完成后点击OK。

4. 如图,可以看到我们备份的名为“01-登录”的文件,里面同样有Login.ets文件,后续还想备份其他案例效果可使用此步骤完成。

7  案例——实现头部文件、提交按钮

在ets文件夹下创建名为“components”的文件夹,里面保存预览文本文件并导出。

在pages文件夹原有文件Index.ets中编写代码导入“components”文件夹中的文本文件,最终要实现的预览结果如下图:

1. 选中ets文件夹鼠标右击,选择New>Directory创建目录。

2. 为目录取名为“components”并按回车键完成。

3. 创建成功。

4. 在创建好的components文件夹下创建两个后缀.ets的文件分别取名为“Header.ets”、“Footer.ets”。

选择components文件夹鼠标右击,选择New>ArkTS File。

为文件命名为“Header”后按回车键。

成功创建Header.ets文件,里面需要编辑代码。

按照上述方法在components文件夹中创建Footer.ets文件。

5. 文件创建完成后,在两个文件中编写代码。首先,在Header.ets文件中输入如下内容并保存:

@Component
export struct Header {build() {Row() {Text('头部文件')}}
}

6. 在Footer.ets文件中输入如下内容并保存:

@Component
export struct Footer {build() {Column() {Row() {Button('提交按钮')}}}
}

7. 在ets/pages文件夹下的Index.ets文件中输入如下内容并保存:

import { Footer } from '../components/Footer'
import { Header } from '../components/Header'
@Entry
@Component
struct Index {build() {Column() {Header()Footer()}}
}

8. 完成上述后点击右侧Previewer预览,如图完成案例中的效果。

8  案例——点击数字使其增加

要实现的预览结果:

点击蓝色“++”按钮实现数字增加。

1. 在main/ets/pages文件夹中新创建一个名为“Dianji”的ArkTS文件用来存放代码,创建方法参考上述步骤中的方法。

2. 创建完成。

3. 在Dianji.ets文件中输入如下内容:

@Entry
@Component
struct Dianji {@State count: number = 2024build() {Column() {Text(this.count.toString())Button('++').onClick(()=>{this.count ++console.log(this.count.toString())})}}
}

4. 点击右侧Previewer预览效果。

5. 点击“++”按钮可以实现数字增加,完成案例要求。

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

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

相关文章

【机器学习】基于果蝇算法优化的BP神经网络分类预测(FOA-BP)

目录 1.原理与思路2.设计与实现3.结果预测4.代码获取 1.原理与思路 【智能算法应用】智能算法优化BP神经网络思路【智能算法】果蝇算法(FOA)原理及实现 2.设计与实现 数据集: 多输入多输出:样本特征24,标签类别4。…

【计算机视觉】三、图像处理——实验:图像去模糊和去噪、提取边缘特征

文章目录 0. 实验环境1. 理论基础1.1 滤波器(卷积核)1.2 PyTorch:卷积操作 2. 图像处理2.1 图像读取2.2 查看通道2.3 图像处理 3. 图像去模糊4. 图像去噪4.1 添加随机噪点4.2 图像去噪 0. 实验环境 本实验使用了PyTorch深度学习框架,相关操作…

bezier曲线拟合椭圆弧线

椭圆弧线用bezier曲线拟合 。 先计算出 椭圆中心 起始角度 旋转角度 S t e p 1 : C o m p u t e ( x 1 ′ , y 1 ′ ) Step 1: Compute(x_1, y_1) Step1:Compute(x1′​,y1′​) ( x 1 ′ y 1 ′ ) ( cos ⁡ φ sin ⁡ φ − sin ⁡ φ cos ⁡ φ ) ⋅ ( x 1 − x 2 2 y 1 −…

some/ip CAN CANFD

关于SOME/IP的理解 在CAN总线的车载网络中,通信过程是面向信号的 当ECU的信号的值发生了改变,或者发送周期到了,就会发送消息,而不考虑接收者是否需要,这样就会造成总线上出现不必要的信息,占用了带宽 …

RabbitMQ详细讲解

目录 4.0 AMQP协议的回顾 4.1 RabbitMQ支持的消息模型 4.2 引入依赖 4.3 第一种模型(直连) 1. 开发生产者 2. 开发消费者 3. 参数的说明 4.4 第二种模型(work quene) 1. 开发生产者 2.开发消费者-1 3.开发消费者-2 4.测试结果 5.消息自动确认机制 4.5 第三种模型(…

开源表单设计器vue-form-design自动化校验实现原理

表单校验可以改善用户体验和减轻服务器的压力, 而动态配置表单校验能极大的提高动态表单的扩展性、灵活性, 满足多样性、差异化需求 目标 👌,首先我们简要说下要实现的目标功能: 具有基础的表单验证功能提供一些内置验证规则提供对外开放的…

用OceanBase binlog service 轻松进行数据回滚

背景 在日常的数据库运维过程中,难免会遭遇数据误操作的情形,比如因疏忽而执行了非预期的delete或update操作,这时就需要进行数据回滚。如果在OceanBase中启用了回收站功能,并设置了合适的undo_retention,那么我们可以…

jmx_prometheus_javaagent-0.19.0.jar+Prometheus+Grafana 监控Tongweb嵌入式(by lqw)

文章目录 1.思路2.部署准备3.应用jar包修改配置和导入tw嵌入式的依赖(参考)4.Prometheus部署5.Prometheus配置6.安装和配置Grafana 1.思路 Tongweb嵌入式最终是把依赖打入到java应用(也就是jar包里),然后启动jar包进行…

单片机LED灯闪烁

延时函数计算&#xff08;相关代码生成&#xff09;&#xff1a; #include "reg52.h" #include <INTRINS.H> void Delay500ms() //11.0592MHz {unsigned char i, j, k;_nop_();_nop_();i 22;j 3;k 227;do{do{while (--k);} while (--j);} while (--i); }vo…

让扣你代码的人电脑关机-js反爬

文案 让扣你代码的人电脑关机&#xff0c;赶紧学起来。众所周知。浏览器中无法导入模块&#xff0c;会报错。nodejs中可以导入模块。那么我们可以在导入语句后加入整蛊代码。在捕获异常后执行正常的代码。那么代码在浏览器中就会正常执行&#xff0c;而当你在本地环境中执行的…

Docker常用命令!!!

一、docker基础命令 1、启动docker systemctl start docker 2、关闭docker systemctl stop docker 3、重启docker systemctl restart docker 4、docker设置随服务启动而自启动 systemctl enable docker 5、查看docker 运行状态 systemctl status docker 6、查看docker 版本号信…

Microsoft Edge浏览器Internal Server Error问题解决

网页无法在Microsoft Edge浏览器&#xff0c;尝试Google浏览器可以&#xff0c;排除服务器问题&#xff0c;应该是浏览器本身的问题。 一般这种都是和cookie有关&#xff0c;尝试删除记录 解决&#xff01;

【MQTT】Vue中使用mqtt

MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;作为一种轻量级、开放、灵活、简单、易于实现的通信协议。它基于发布/订阅&#xff08;Publish/Subscribe&#xff09;模式的消息传输协议&#xff0c;在上位机和硬件设备间通信时经常用到。虽然在嵌入式软件一…

【图解物联网】第4章 先进的感测技术

4.1 逐步扩张的传感器世界 在前面的章节中&#xff0c;传感器的概念是“用来获取温度和湿度等纯数据的电子零件”。温度传感器和加速度传感器等确实是用来获取简单数据的小零件&#xff0c;我们可以将其理解为构成智能手机等电子设备的一个要素。 然而&#xff0c;随…

分布式文件存储与数据缓存(二)| Redis

目录 Redis概述_什么是NoSQLNoSQL的四大分类KV型NoSql&#xff08;代表----Redis&#xff09;列式NoSql&#xff08;代表----HBase&#xff09;文档型NoSql&#xff08;代表----MongoDB&#xff09;搜索型NoSql&#xff08;代表----ElasticSearch&#xff09; 关系型数据库和非…

Aspose.PDF功能演示:在 JavaScript 中优化 PDF 文件

PDF 文件是一种普遍存在的文档共享格式&#xff0c;但它们有时可能会很大&#xff0c;导致加载时间变慢并增加存储要求。优化 PDF 文件对于确保无缝的用户体验至关重要&#xff0c;尤其是在 Web 应用程序中。因此&#xff0c;在这篇博文中&#xff0c;我们将探讨如何使用 JavaS…

NCV4266ST50T3G线性稳压器芯片中文资料规格书PDF数据手册引脚图参数图片价格

产品概述&#xff1a; NCV4266 是一款集成了 150 mA 输出电流的低漏稳压器系列&#xff0c;可用于严酷汽车环境。它包括了较宽的运行温度范围和输出电压范围。该器件提供 3.3 V、5.0 V 固定电压版本&#xff0c;以及可调电压版本&#xff0c;输出电压准确度为 2%。它具有较高的…

IDEA 下载依赖包源码报错 Cannot download sources Sources not found for:XXX

最近在做一个功能的时候想看一个库的源码&#xff0c;结果源码下不下来&#xff0c;报Cannot download sources Sources not found for:XXX,网上搜了半天&#xff0c;也找不到靠谱的结论 后来想了下&#xff0c;应该是镜像那边出了问题&#xff0c;把镜像一删&#xff0c;源码…

HTML静态网页成品作业(HTML+CSS)——非遗徽州木雕网页(6个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有6个页面。 二、作品演示 三、代…

Linux nginx 域名申请证书后无法使用(无法访问此网站)阿里云域名

首先我们一步排除 1、域名备案是否成功&#xff1f; 网站备案_ICP备案_备案迁移_备案-阿里云 2、域名是否解析&#xff08;我就是错在这里&#xff09; 阿里云登录 - 欢迎登录阿里云&#xff0c;安全稳定的云计算服务平台 3、是否申请证书成功&#xff1f; 4、nginx是否支持…