鸿蒙应用开发从入门到实战(三):第一个鸿蒙应用
鸿蒙应用开发从入门到实战三第一个鸿蒙应用在上一篇文章中我们了解了鸿蒙系统的架构和开发环境搭建。今天我们将正式进入实战环节——创建并运行你的第一个鸿蒙应用。通过这个简单的Hello World程序你将掌握鸿蒙应用开发的基本流程、项目结构和核心概念。## 认识鸿蒙应用项目结构在开始编写代码前我们需要先了解鸿蒙应用的标准项目结构。使用DevEco Studio创建一个新项目后你会看到以下关键目录-entry/src/main/ets/存放TypeScript代码的主入口-entry/src/main/resources/存放资源文件图片、字符串等-entry/build/构建输出目录-entry/src/main/config.json应用配置文件这种结构遵循了鸿蒙的模块化设计理念所有逻辑代码放在ETs目录下资源文件与代码分离便于维护和国际化。## 创建你的第一个应用### 步骤1新建项目打开DevEco Studio点击“Create HarmonyOS Project”选择“Empty Ability”模板。填写项目名称例如HelloWorld选择API版本推荐使用API 9以上点击Finish完成创建。### 步骤2理解主入口文件项目创建后打开entry/src/main/ets/Index.ets文件。这是应用的默认页面代码如下typescript// 导入必要的鸿蒙框架模块import router from ohos.router;// 定义数据模型用于页面状态管理EntryComponentstruct Index { // 响应式状态变量当值变化时自动更新UI State message: string Hello, HarmonyOS!; // 构建UI的方法 build() { // 使用Column布局排列子组件 Column() { // 文本组件显示当前状态变量 Text(this.message) .fontSize(50) .fontWeight(FontWeight.Bold) .margin({ bottom: 20 }) // 按钮组件点击时触发事件 Button(Click Me) .fontSize(20) .backgroundColor(#007BFF) .onClick(() { // 点击后使用路由跳转到第二个页面 router.pushUrl({ url: pages/Second }); }) } .width(100%) .height(100%) .justifyContent(FlexAlign.Center) .alignItems(HorizontalAlign.Center) }}这段代码展示了鸿蒙应用的核心特性使用Entry和Component装饰器定义页面组件State管理响应式数据build()方法描述UI结构。整个UI采用声明式语法类似于SwiftUI或Flutter。### 步骤3运行应用连接鸿蒙设备或启动模拟器点击工具栏的“Run”按钮。首次运行可能需要等待构建完成。你会看到模拟器或真机上显示一个居中的“Hello, HarmonyOS!”文本和一个蓝色按钮。## 扩展功能添加第二个页面一个完整的应用通常包含多个页面。下面我们创建一个新的页面并实现页面间跳转。### 创建新页面在entry/src/main/ets/目录下新建文件Second.ets代码如下typescript// 导入路由模块import router from ohos.router;// 定义第二个页面的组件EntryComponentstruct Second { // 接收从首页传递过来的参数 State data: string ; // 页面生命周期函数当页面显示时触发 onPageShow() { // 获取路由参数 const params router.getParams(); if (params) { // 从参数中提取数据 this.data params[info] as string; } } build() { Column() { // 显示接收到的数据 Text(this.data) .fontSize(30) .margin({ bottom: 20 }) // 返回按钮 Button(Go Back) .fontSize(20) .backgroundColor(#28A745) .onClick(() { // 返回上一页 router.back(); }) } .width(100%) .height(100%) .justifyContent(FlexAlign.Center) .alignItems(HorizontalAlign.Center) }}### 修改首页传递参数回到Index.ets修改按钮的点击事件传递参数typescriptButton(Click Me) .fontSize(20) .backgroundColor(#007BFF) .onClick(() { // 传递参数到第二个页面 router.pushUrl({ url: pages/Second, params: { info: Welcome to HarmonyOS! } }); })### 配置路由在entry/src/main/resources/base/profile/main_pages.json中添加新页面路由json{ src: [ pages/Index, pages/Second ]}运行时点击首页按钮会跳转到第二页显示传递的字符串“Welcome to HarmonyOS!”点击“Go Back”按钮返回首页。这种页面间数据传递和路由机制是构建复杂应用的基础。## 深入理解声明式UI与状态管理鸿蒙应用开发的最大特点是使用声明式UI。与传统的命令式编程不同开发者只需描述UI应该是什么样子系统会自动处理状态变化时的UI更新。例如当State变量message变化时所有引用它的组件都会自动重绘。这种模式带来了几个好处1.代码更简洁无需手动操作DOM或视图2.更易维护状态变化与UI更新逻辑解耦3.性能优化框架只更新变化的部分## 总结通过本篇文章你已经成功创建并运行了第一个鸿蒙应用。从项目结构认知、页面组件编写、路由配置到状态管理你体验了鸿蒙应用开发的核心流程。下一步你可以尝试修改UI样式、添加更多组件或集成网络请求功能。记住鸿蒙开发不仅限于手机同样的代码稍作调整即可运行在平板、手表或智慧屏上这就是“一次开发多端部署”的威力。继续探索吧鸿蒙生态的广阔天地等你来征服

相关新闻

几何光学仿真:在浏览器中探索光的奇妙世界

几何光学仿真:在浏览器中探索光的奇妙世界

几何光学仿真:在浏览器中探索光的奇妙世界 【免费下载链接】ray-optics A web app for creating and simulating 2D geometric optical scenes, with a gallery of (interactive) demos. 项目地址: https://gitcode.com/gh_mirrors/ra/ray-optics Ray Optics…

2026/7/26 23:41:41 阅读更多 →
HarmonyOS应用《玄象》开发实战:卦象绘制:阳爻(▔)/ 阴爻(▔▔)的 Canvas 矩形堆叠

HarmonyOS应用《玄象》开发实战:卦象绘制:阳爻(▔)/ 阴爻(▔▔)的 Canvas 矩形堆叠

阅读时长:约 18 分钟 | 难度:★★★★☆ | 篇章:第 5 篇 周易易学模块 对应源码:entry/src/main/ets/pages/yijing/HexagramsPage.ets、CastDivinationPage.ets 前言 卦象的爻线是《周易》最基本的视觉符号——阳爻为一条连…

2026/7/26 23:41:41 阅读更多 →
python数据可视化技巧的100个练习 -- 47. 生成客户满意度分析的配对网格图

python数据可视化技巧的100个练习 -- 47. 生成客户满意度分析的配对网格图

重要性★★★★☆ 难度★★★☆☆ 您是一家零售公司的数据分析师。 公司收集了针对其新产品的多维度客户满意度数据。 您的任务是创建一个配对网格图,以可视化不同满意度指标之间的关系。 数据集包括以下变量: 总体满意度(1-10 分) 产品质量(1-10 分) 客户服务(1-1…

2026/7/26 23:41:41 阅读更多 →

最新新闻

深度解析R3nzSkin:英雄联盟皮肤修改器的技术架构与内核级反作弊对抗实战指南

深度解析R3nzSkin:英雄联盟皮肤修改器的技术架构与内核级反作弊对抗实战指南

深度解析R3nzSkin:英雄联盟皮肤修改器的技术架构与内核级反作弊对抗实战指南 【免费下载链接】R3nzSkin Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3/R3nzSkin 在游戏修改工具与反作弊系统的永恒博弈中&#xff…

2026/7/27 0:03:56 阅读更多 →
告别枯燥刷本!三月七小助手让星穹铁道游戏时间减少80%

告别枯燥刷本!三月七小助手让星穹铁道游戏时间减少80%

告别枯燥刷本!三月七小助手让星穹铁道游戏时间减少80% 【免费下载链接】March7thAssistant 崩坏:星穹铁道全自动 三月七小助手 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 你是否已经厌倦了每天重复刷材料、清体力的机械操作…

2026/7/27 0:03:56 阅读更多 →
剪映AI音频分离功能即将下线?内部消息证实:6月起全面接入火山引擎ASR-AI架构(附迁移保底方案)

剪映AI音频分离功能即将下线?内部消息证实:6月起全面接入火山引擎ASR-AI架构(附迁移保底方案)

更多请点击: https://intelliparadigm.com 第一章:剪映AI音频分离功能即将下线?内部消息证实:6月起全面接入火山引擎ASR-AI架构(附迁移保底方案) 功能变更背景与时间节点确认 据字节跳动内部技术通告&…

2026/7/27 0:03:56 阅读更多 →
【可灵多镜头短片制作终极指南】:20年影像工程师亲授3步实现电影级分镜调度与无缝转场

【可灵多镜头短片制作终极指南】:20年影像工程师亲授3步实现电影级分镜调度与无缝转场

更多请点击: https://codechina.net 第一章:可灵多镜头短片制作的核心理念与技术演进 可灵(Kling)作为新一代AI原生视频生成模型,其多镜头短片能力突破了传统单帧/单镜头生成范式,转向以叙事逻辑驱动的时…

2026/7/27 0:03:56 阅读更多 →
优启通3.7修改版:深度优化的PE系统维护工具

优启通3.7修改版:深度优化的PE系统维护工具

1. 项目概述今天要跟大家分享的是一个经过深度优化的PE工具——优启通3.7(2025修改版)。这个版本是在原版基础上进行了大量功能增强和兼容性改进的12月最新版本,特别适合系统维护人员和电脑爱好者使用。作为一个长期从事IT运维的老兵&#xf…

2026/7/27 0:03:56 阅读更多 →
Android 串口底层基础:USB 串口、RS485/232 驱动识别、串口通信框架入门

Android 串口底层基础:USB 串口、RS485/232 驱动识别、串口通信框架入门

Android 串口底层基础:USB 串口、RS485/232 驱动识别、串口通信框架入门工控板子要跟传感器、继电器、PLC 对话,串口就是那根"嗓子"。搞不定串口,工控项目等于哑巴。一、串口通信基础 串口通信是最经典的设备间通信方式&#xff0c…

2026/7/27 0:02:56 阅读更多 →

日新闻

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →
SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

1. 项目概述:从寄存器手册到实战指南 如果你手头有一份类似德州仪器(TI)TMS320x240xA系列DSP的SPI模块技术手册,看着里面密密麻麻的寄存器位定义、时序图和公式,是不是感觉头大?这份资料虽然权威&#xff0…

2026/7/27 0:00:54 阅读更多 →
【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/26 0:00:31 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/26 0:00:31 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/26 0:00:31 阅读更多 →

月新闻