构建第一个ArkTS应用:Hello World之旅

news2025/4/9 4:43:51

# 构建第一个ArkTS应用:Hello World之旅

在鸿蒙应用开发的领域中,ArkTS语言为我们提供了强大而便捷的开发方式。今天,就让我们一起踏上构建第一个ArkTS应用——Hello World的奇妙旅程。

## 一、创建ArkTS工程

1. 首先,我们要使用DevEco Studio这个强大的开发工具。启动DevEco Studio后,通过点击“Create Project”来创建工程。如果已经打开了一个工程,也可以在菜单栏选择“File > New > Project” 。

2. 接着,选择“Application”类型来创建项目(本文以该类型为例 )。这里有“Ability”选项,我们选择“Empty Ability” ,然后点击“Next”。如果想要进行Native相关工程的开发,还可以选择“Native C++” ,更多模板的使用说明可以查阅相关工程模板介绍。

3. 进入配置工程界面后,“Compatible SDK”会显示当前默认的API Version ,这里我们选择合适的版本,其他参数可以采用默认设置。

4. 最后,点击“Finish” ,工具就会自动为我们生成代码和相关资源,这样一个ArkTS工程就创建完成啦。

## 二、ArkTS项目目录结构(Stage模型)

创建好工程后,我们来了解一下ArkTS项目的目录结构(基于Stage模型 ):

- **AppScope > app.json5**:这里存储着应用的全局配置信息,详细内容可以参考app.json5配置文件。

- **src > main > ets**:这是存放ArkTS源码的地方。

- **src > main > ets > entryability**:应用的入口相关代码都在这里。

- **src > main > ets > pages**:应用页面的代码,像页面的扩展标识文件等都在这个目录。

- **src > main > resources**:这里存放着应用开发中会用到的各种资源文件,比如多媒体文件、字符串资源、布局文件等,关于资源文件的详细介绍可以查看相关资源分类。

- **src > main > module.json5**:模块配置文件,里面包含模块的配置信息、模块的发布信息、应用/服务的配置信息等,比如“abilities”数组配置应用/服务的相关信息,“deviceConfig”用于配置设备相关信息等。

- **build-profile.json5**:当前的构建配置文件,涵盖编译配置信息,像“buildOption”“target”等配置项。

- **oh-package.json**:模块包描述文件,在进行包管理操作时会用到。

- **etsconfig.json**:用于存储开发工具相关配置信息,比如入口文件(类型和路径 )和体验版相关信息等。

- **oh-protodoc.json**:用于生成接口文档。

- **build-profile.json**:工程全局配置信息,包含“signingConfig”“Profile”“product”等,其中“product”可配置当前运行设备的相关信息。

- **oh-package-lock.json**:主要用来锁定依赖版本,像依赖覆盖(override )、依赖关系声明(overrideDependencyMap )和依赖版本范围等都在这个文件中管理。

## 三、构建第一个页面

1. 我们打开工程目录中的“Project”窗口,找到“entry > src > main > ets > pages” ,然后打开“Index.ets”文件,开始进行页面的编写。在这个文件中,我们使用“Row”和“Column”组件来布局页面,对于更多的组件使用可以参考相关组件介绍。以下是“Index.ets”文件的初始代码示例:

```ets

// Index.ets

@Entry

@Component

struct Index {

    message: string = 'Hello World'

    build() {

        Column() {

            Text(this.message)

              .fontSize(50)

              .fontWeight(FontWeight.Bold)

        }

        .width('100%')

    }

}

```

2. 为了让页面更具交互性,我们添加一个“Button”组件,用来响应用户的点击操作,从而实现跳转到另一个页面。修改后的“Index.ets”文件代码如下:

```ets

// Index.ets

@Entry

@Component

struct Index {

    message: string = 'Hello World'

    build() {

        Column() {

            Text(this.message)

              .fontSize(50)

              .fontWeight(FontWeight.Bold)

            // 添加按钮,跳转到第二个页面

            Button('Next')

              .fontSize(16)

              .backgroundColor(0x1890ff)

              .width(120)

              .height(40)

              .cornerRadius(10)

        }

        .width('100%')

    }

}

```

3. 编写好代码后,我们在编辑器窗口上方点击调试工具栏中的“Previewer” ,打开预览器,就可以看到第一个页面呈现出“Hello World”和一个“Next”按钮的效果啦。

## 四、构建第二个页面

1. 创建第二个页面文件:在“Project”窗口中,打开“entry > src > main > ets” ,右键点击“pages”文件夹,选择“New > ArkTS File” ,命名为“Second” ,点击“OK” ,就可以看到文件目录结构新增了相关文件。

2. 编写第二个页面代码:参考第一个页面的代码,在第二个页面添加“Text”“Button”等组件,并设置其样式。“Second.ets”文件的代码示例如下:

```ets

// Second.ets

@Entry

@Component

struct Second {

    message: string = 'Hi there'

    build() {

        Column() {

            Text(this.message)

              .fontSize(50)

              .fontWeight(FontWeight.Bold)

            Button('Back')

              .fontSize(16)

              .backgroundColor(0x1890ff)

              .width(120)

              .height(40)

              .cornerRadius(10)

        }

        .width('100%')

    }

}

```

## 五、实现页面间的跳转

页面间的跳转可以通过路由模块“router”来实现。页面路由“router”会根据页面栈找到目标页面,从而实现跳转。

1. 在第一个页面中,实现跳转到第二个页面:在“Index.ets”文件中添加如下代码,当点击“Next”按钮时,跳转到第二个页面。

```ets

// Index.ets

import { router } from '@ohos.router';

@Entry

@Component

struct Index {

    message: string = 'Hello World'

    build() {

        Column() {

            Text(this.message)

              .fontSize(50)

              .fontWeight(FontWeight.Bold)

            // 添加按钮,跳转到第二个页面

            Button('Next')

              .fontSize(16)

              .backgroundColor(0x1890ff)

              .width(120)

              .height(40)

              .cornerRadius(10)

              .onClick(() => {

                    router.pushUrl({

                        url: 'pages/Second',

                        params: {

                            message: 'Hi there'

                        }

                    }).then(() => {

                        console.info('Succeeded in clicking the "Next" button.')

                    }).catch((err) => {

                        console.error('Failed to jump to the second page. Code is:'+ err.code + ', message is:'+ err.message)

                    })

                })

        }

        .width('100%')

    }

}

```

2. 在第二个页面中,实现回到第一个页面:在“Second.ets”文件中添加如下代码,当点击“Back”按钮时,回到第一个页面。

```ets

// Second.ets

import { router } from '@ohos.router';

@Entry

@Component

struct Second {

    message: string = 'Hi there'

    build() {

        Column() {

            Text(this.message)

              .fontSize(50)

              .fontWeight(FontWeight.Bold)

            Button('Back')

              .fontSize(16)

              .backgroundColor(0x1890ff)

              .width(120)

              .height(40)

              .cornerRadius(10)

              .onClick(() => {

                    router.back()

                      .then(() => {

                            console.info('Succeeded in returning to the first page.')

                        })

                      .catch((err) => {

                            console.error('Failed to return to the first page. Code is:'+ err.code + ', message is:'+ err.message)

                        })

                })

        }

        .width('100%')

    }

}

```

3. 打开“Index.ets”文件,点击上方的“预览”按钮进行预览,就可以看到页面间跳转的效果啦。

通过以上步骤,我们成功构建了一个包含两个页面且能实现页面跳转的ArkTS应用。这只是鸿蒙应用开发的一小步,后续还有更多精彩的功能和技术等待我们去探索和学习。

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

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

相关文章

第十五届单片机模拟考试III

题目 题目不长 ,功能也不难,一道水题 按键功能 S4界面切换,S5 功能切换,在不同界面转换不同的功能,定义两个标志位记录即可。 S9复位,回到初始状态,记得界面也得回到初始的信号界面&#xff0…

测试:正交法设计测试用例

目录 一、什么是正交法 二、利用正交表设计测试用例 正交法设计测试用例的步骤 一、什么是正交法 正交法的目的是为了减少测试用例的数量,让尽可能少的用例覆盖两两组合。认识正交表。 最简单的正交表是L4(2^3),含意如下: “L”代表正…

[ctfshow web入门] web5

前置知识 引用博客:phps的利用 当服务器配置了 .phps 文件类型时,访问 .phps 文件会以语法高亮的形式直接显示 PHP 源代码,而不是执行它。.phps被作为辅助开发者的一种功能,开发者可以通过网站上访问xxx.phps直接获取高亮源代码 …

Qt基本框架(2)

本篇主要介绍如何设置窗口,以及在窗口中添加按钮 本文部分ppt、视频截图原链接:[萌马工作室的个人空间-萌马工作室个人主页-哔哩哔哩视频] 1. Qt简单框架 2. 通过QMainWindow实现简单界面 QMainWindow是构建主窗口应用的核心类,通过合理设计…

基于javaweb的SpringBoot图片管理系统图片相册系统设计与实现(源码+文档+部署讲解)

技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…

用HTML.CSS.JavaScript实现一个贪吃蛇小游戏

目录 一、引言二、实现思路1. HTML 结构2. CSS 样式3. JavaScript 逻辑 三、代码实现四、效果展示 一、引言 贪吃蛇是一款经典的小游戏,曾经风靡一时。今天,我们将使用 HTML、CSS 和 JavaScript 来实现一个简单的贪吃蛇小游戏。通过这个项目&#xff0c…

JVM——模型分析、回收机制

方法区:存储已被虚拟机加载的类元数据信息(元空间) 堆:存放对象实例,几乎所有的对象实例都在这里分配内存 虚拟机栈:虚拟机栈描述的是|ava方法执行的内存模型:每个方法被执行的时候都会同时创建一个栈帧(Stack Frame)用于存储局…

7. 记忆(Memory)机制:让AI拥有“短期记忆”与“长期记忆”

引言:当AI学会"记住你" 2025年某银行智能客服因无法记住用户身份,每次对话都要求重复验证,引发大量投诉。引入LangChain 记忆系统后,客户满意度提升62%。本文将基于MemorySaver与FAISS本地存储,教你构建符合…

前后端分离下,Spring Boot 请求从发起到响应的完整执行流程

以下是前后端分离架构下,Spring Boot 请求从发起到响应的完整执行流程,结合你提出的所有问题,按真实执行顺序和职责链条重新整理所有核心概念、结构、关键类、数据转换点和典型代码示例: 一、前端发起请求(步骤1-2&…

【文献阅读】Vision-Language Models for Vision Tasks: A Survey

发表于2024年2月 TPAMI 摘要 大多数视觉识别研究在深度神经网络(DNN)训练中严重依赖标注数据,并且通常为每个单一视觉识别任务训练一个DNN,这导致了一种费力且耗时的视觉识别范式。为应对这两个挑战,视觉语言模型&am…

spring-cloud-alibaba-nacos-config使用说明

一、核心功能与定位 Spring Cloud Alibaba Nacos Config 是 Spring Cloud Alibaba 生态中的核心组件之一,专为微服务架构提供动态配置管理能力。它通过整合 Nacos 的配置中心功能,替代传统的 Spring Cloud Config,提供更高效的配置集中化管理…

C# Winform 入门(9)之如何封装并调用dll

封装dll 首先创建 .Net平台 类库 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace _09.Encapsulation_dll {public class Program{/// <summary>/// 求两个double类型的数值的和/// &l…

【嵌入式系统设计师】知识点:第2章 嵌入式系统硬件基础知识

提示:“软考通关秘籍” 专栏围绕软考展开,全面涵盖了如嵌入式系统设计师、数据库系统工程师、信息系统管理工程师等多个软考方向的知识点。从计算机体系结构、存储系统等基础知识,到程序语言概述、算法、数据库技术(包括关系数据库、非关系型数据库、SQL 语言、数据仓库等)…

Vue2_Vue.js教程

目录 一、Vue.js安装 1、独立版本 2、CDN 方法 3、npm 方法 二、Vue Al编程助手 三、Vue.js目录结构 目录解析 四、Vue.js 起步 1.如何定义数据对象和方法并渲染进页面 五、Vue.js 模板语法 插值 文本_{{}} Html_v-html 指令 属性_v-bind (数据传输工具)指令 表…

【工业场景】用YOLOv12实现饮料类别识别

饮料类别识别任务的意义在于帮助人们更快速地识别和区分不同类型的饮料&#xff0c;从而提高消费者的购物体验和满意度。对于商家而言&#xff0c;饮料类别识别可以帮助他们更好地管理库存、优化货架布局和预测销售趋势&#xff0c;从而提高运营效率和利润。此外&#xff0c;饮…

从小米汽车事故反思 LabVIEW 开发

近期&#xff0c;小米汽车的一起严重事故引发了社会各界的广泛关注。这起事故不仅让我们对智能汽车的安全性产生了深深的思考&#xff0c;也为 LabVIEW 开发领域带来了诸多值得汲取的知识与领悟。 在智能汽车领域&#xff0c;尤其是涉及到智能驾驶辅助系统时&#xff0c;安全是…

Vue3+Vite+TypeScript+Element Plus开发-04.静态菜单设计

系列文档目录 Vue3ViteTypeScript安装 Element Plus安装与配置 主页设计与router配置 静态菜单设计 Pinia引入 文章目录 目录 系列文档目录 文章目录 前言 一、Aside设计 二、动态增加菜单 三.布局引用在Main中显示 参考文献&#xff1a; 前言 在本系列文档中&…

大数据技术发展与应用趋势分析

大数据技术发展与应用趋势分析 文章目录 大数据技术发展与应用趋势分析1. 大数据概述2 大数据技术架构2.1 数据采集层2.2 数据存储层2.3 数据处理层2.4 数据分析层 3 大数据发展趋势3.1 AI驱动的分析与自动化3.2 隐私保护分析技术3.3 混合云架构的普及3.4 数据网格架构3.5 量子…

与Linux操作系统相关的引导和服务

目录 一.Linux操作系统引导过程 1.1引导过程总览 1.2系统初始化进程 1.2.1init进程 1.2.2sysmted 1.3systemd单元类型 二.排除启动类故障 2.1MBR扇区故障 2.1.1故障原因 2.1.2故障现象 2.1.3解决办法 2.1.4模拟修复MBR扇区故障 1)添加新的硬盘 2&#xff09;进行…

STM32单片机入门学习——第16节: [6-4] PWM驱动LED呼吸灯PWM驱动舵机PWM驱动直流电机

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难&#xff0c;但我还是想去做&#xff01; 本文写于&#xff1a;2025.04.05 STM32开发板学习——第16节: [6-4] PWM驱动LED呼吸灯&PWM驱动舵机&PWM驱…