鸿蒙应用开发从入门到实战(三):第一个鸿蒙应用
鸿蒙应用开发从入门到实战三第一个鸿蒙应用在上一篇文章中我们了解了鸿蒙系统的架构和开发环境搭建。今天我们将正式进入实战环节——创建并运行你的第一个鸿蒙应用。通过这个简单的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/8/10 18:33:54 阅读更多 →
HarmonyOS应用《玄象》开发实战:卦象绘制:阳爻(▔)/ 阴爻(▔▔)的 Canvas 矩形堆叠

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

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

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

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

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

2026/8/16 15:59:10 阅读更多 →

最新新闻

三步掌握姿态估计:ComfyUI ControlNet Aux OpenPose预处理器完整上手指南

三步掌握姿态估计:ComfyUI ControlNet Aux OpenPose预处理器完整上手指南

三步掌握姿态估计:ComfyUI ControlNet Aux OpenPose预处理器完整上手指南 【免费下载链接】comfyui_controlnet_aux ComfyUIs ControlNet Auxiliary Preprocessors 项目地址: https://gitcode.com/gh_mirrors/co/comfyui_controlnet_aux 想让AI生成的角色摆出…

2026/8/18 13:07:08 阅读更多 →
企业软文发稿哪家平台靠谱?朝闻通凭实力斩获权威营销奖项

企业软文发稿哪家平台靠谱?朝闻通凭实力斩获权威营销奖项

做软文推广,多数企业的核心痛点并非内容创作,而是投放无效果、预算难落地。很多时候,优质软文内容已然打磨到位,却因渠道选择失误、投放逻辑混乱,导致曝光稀疏、流量孱弱、转化低迷,整体营销投入全部沦为无…

2026/8/18 13:07:08 阅读更多 →
机器人运动控制学习1——基础概念

机器人运动控制学习1——基础概念

先搞清机器人为什么能动 → 再搞清怎么让一个关节听话 → 再控制整条腿 → 最后才上全身控制和人形机器人。先建立“运控组到底干什么”的地图你可以把机器人看成一个闭环:我想让机器人怎么动↓目标指令↓运动控制算法↓位置 / 速度 / 力矩命令↓电机 / 关节↓机器人…

2026/8/18 13:07:08 阅读更多 →
LeagueAkari 多客户端管理终极指南:一套工具玩转你的所有英雄联盟账号

LeagueAkari 多客户端管理终极指南:一套工具玩转你的所有英雄联盟账号

LeagueAkari 多客户端管理终极指南:一套工具玩转你的所有英雄联盟账号 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你有多久没打…

2026/8/18 13:07:08 阅读更多 →
非线性多智能体分布式防撞:基于应急MPC与安全集的三层安全架构

非线性多智能体分布式防撞:基于应急MPC与安全集的三层安全架构

1. 项目概述:当多智能体在复杂环境中“狭路相逢” 在机器人、自动驾驶和无人机集群等领域,一个核心且极具挑战性的问题是如何让多个自主移动的智能体在共享的、动态变化的环境中安全、高效地协同运动,同时避免相互碰撞。想象一下,…

2026/8/18 13:07:07 阅读更多 →
PageHelper分页插件原理与实战:从MyBatis拦截器到高效数据查询

PageHelper分页插件原理与实战:从MyBatis拦截器到高效数据查询

1. 从手动分页到PageHelper:一个后端开发者的效率革命 如果你做过Java后端开发,尤其是和数据库打交道的项目,那么“分页”这个词对你来说一定不陌生。回想一下,在没有现成工具的日子里,我们是怎么做分页的?…

2026/8/18 13:06:07 阅读更多 →

日新闻

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF

告别逐帧截图:用 extract-video-ppt 快速提取视频中的 PPT 并一键导出 PDF 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 如果你还停留在"看网课 不停暂停 截图 …

2026/8/18 0:00:57 阅读更多 →
思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查

思源宋体TTF一站式上手:7个字重免费商用,从下载到上线的完整走查 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 你是不是也经历过这种时刻:设计稿里…

2026/8/18 0:00:58 阅读更多 →
华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate

华硕笔记本控制权回收指南:GHelper 如何用一个 10MB 文件替代 Armoury Crate 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, …

2026/8/18 0:00:59 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/18 9:15:35 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/18 9:06:28 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/18 9:04:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/17 18:54:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/17 18:55:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/17 18:55:55 阅读更多 →