【HarmonyOS 5 入门系列】鸿蒙 HarmonyOS 示例项目讲解
前言对于刚开始学习 HarmonyOS 的开发者来说官方 Sample示例项目是最好的学习资料。很多开发者都有这样的困惑学了 ArkTS 语法不知道如何写完整项目会写页面不知道如何组织工程DataPreferences、Router、Ability 不会结合使用想学习官方最佳实践却不知道从哪个 Sample 开始事实上HarmonyOS 官方提供了数百个 Sample。本文将带你系统解析 HarmonyOS 示例项目。包括✅ 示例项目分类✅ 官方 Sample 下载✅ 工程结构✅ 页面组织方式✅ 路由管理✅ 状态管理✅ 数据持久化✅ 网络请求✅ 页面生命周期✅ 常用组件✅ 实战案例拆解真正做到看懂官方 Sample自己也能写出完整 HarmonyOS 项目。一、HarmonyOS Sample 是什么官方 Sample 可以理解成官方提供的最佳实践项目。里面包含ArkUIArkTSAnimationRouterPreferencesDatabaseAbilityStage Model网络请求AI能力分布式能力系统API几乎所有开发能力都有对应 Demo。二、官方 Sample 获取方式主要有三个来源1、HarmonyOS 官方 Sample Center里面几百个案例。分类包括UI媒体网络AI安全CameraArkWebLocationBluetoothNFCDistributed2、DevEco StudioFile↓New Project↓Sample可以直接下载官方示例。3、GitCode / Gitee官方同步维护大量 Sample。例如entry ├── pages ├── resources ├── ets ├── utils ├── model ├── common三、Sample 工程目录解析一个典型项目MyApplication AppScope │ entry │ ├── src │ ├── main │ │ │ ├── ets │ │ │ ├── pages │ │ │ ├── resources │ │ │ ├── module.json5 │ ├── hvigor ├── build-profile.json5其中AppScope整个应用公共配置。entry默认 Module。resources资源文件。pages页面。ets业务代码。四、页面目录官方 Sample 都会这样组织pages Index.ets Login.ets Home.ets User.ets Setting.ets每一个页面都是Component struct Home { build() { } }页面十分独立。五、Router 路由管理官方 Sample 基本都采用router.pushUrl() router.replaceUrl() router.back()例如Button(登录) .onClick((){ router.pushUrl({ url:pages/Home }) })返回router.back()替换router.replaceUrl()六、页面生命周期HarmonyOS 页面aboutToAppear() build() aboutToDisappear()例如aboutToAppear(){ console.info(页面出现) }页面退出aboutToDisappear(){ console.info(页面销毁) }这是官方推荐写法。七、状态管理Sample 中大量使用State Prop Link Provide Consume Observed ObjectLink例如State count:number0更新this.countUI 自动刷新。八、组件拆分官方 Sample 很少一个页面几千行。一般拆components TitleBar.ets UserCard.ets BottomBar.ets Loading.ets页面Column(){ TitleBar() UserCard() BottomBar() }非常清晰。九、数据模型通常model User.ts Goods.ts Order.ts例如export class User{ id:number name:string avatar:string }避免写let data:any十、工具类utils DateUtil.ts LogUtil.ts ToastUtil.ts PermissionUtil.ts统一封装。例如ToastUtil.show()十一、网络请求官方 Sample 多采用ohos.net.http流程创建 Request↓GET↓POST↓JSON↓关闭连接示例http.createHttp()请求request( url )结束destroy()十二、Preferences 数据存储官方推荐Preferences保存put() flush()读取get()例如preferences.put(token,123)读取preferences.get(token)十三、页面通信常见方式State↓Router Param↓EventHub↓Provide↓Consume例如router.pushUrl({ params:{ id:100 } })接收router.getParams()十四、资源管理resourcesbase element media profile rawfile图片media字符串string.json颜色color.json尺寸float.json十五、常用组件 Sample官方示例最多TextButtonImageListGridSwiperTabsScrollNavigationSearchRefreshProgressSliderDatePickerCalendar十六、List 示例解析例如List(){ ForEach( this.list, (item){ ListItem(){ Text(item.name) } } ) }这是官方最经典写法。十七、Grid 示例Grid(){ ForEach( data, (item){ GridItem(){ Image(item.icon) } } ) }适合首页菜单分类十八、Tabs 示例Tabs(){ TabContent(){ Home() } TabContent(){ Mine() } }很多 Sample 都采用这种结构。十九、Navigation 示例Navigation(){ NavDestination(){ Home() } }HarmonyOS 5 推荐 Navigation 体系。二十、动画 Sample包括animateTo() scale() translate() rotate() opacity()例如animateTo({ duration:500 }) { this.scale1.2 }二十一、手势 SampleTapGesture LongPressGesture PanGesture PinchGesture例如Gesture( TapGesture() .onAction((){ }) )二十二、弹窗 Sample包括AlertDialog CustomDialog Toast Loading例如AlertDialog.show()二十三、媒体 Sample包含图片视频音频相机扫码录音播放器二十四、系统能力官方 Sample 覆盖蓝牙NFC定位联系人电话通知剪贴板振动传感器WiFi二十五、ArkWeb Sample包含Web()支持网页JS BridgeCookie下载上传缓存二十六、数据库 Sample包括PreferencesRelationalStoreRdbDataShare二十七、AI SampleHarmonyOS 5 已提供大量 AI 示例例如AI 文本能力图像识别智能推荐大模型接入Agent 能力二十八、最佳实践总结官方 Sample 共同特点单一职责一个页面只做一件事UI 与业务逻辑分离合理拆分组件数据模型统一管理工具类统一封装使用状态驱动 UI资源统一管理生命周期管理规范网络请求统一封装注重代码可维护性学习路线建议如果你是 HarmonyOS 5 初学者建议按照以下顺序学习官方 Sample学习阶段推荐内容学习目标第一阶段ArkUI 基础组件Text、Button、Image、List熟悉声明式 UI 开发第二阶段页面路由、Navigation、生命周期掌握页面组织与导航第三阶段State、Prop、Link等状态管理理解响应式开发模式第四阶段Preferences、数据库、网络请求掌握数据管理第五阶段动画、手势、自定义组件提升交互体验第六阶段相机、定位、通知、ArkWeb 等系统能力学习系统 API 调用第七阶段综合官方示例项目独立开发完整应用总结HarmonyOS 官方 Sample 不只是 Demo更是一套完整的开发最佳实践。从工程结构、页面组织、状态管理、路由导航到系统能力调用都体现了 HarmonyOS 5 推荐的开发方式。

相关新闻

从茄子5EPL比赛解析CSGO职业选手的决策逻辑与实战技巧

从茄子5EPL比赛解析CSGO职业选手的决策逻辑与实战技巧

如果你是一名CSGO玩家,最近一定在各大平台刷到过"茄子"这个名字。这位前职业选手转型主播,以其极具辨识度的嗓音、真实的游戏反应和过硬的技术实力,在短短时间内成为了CSGO圈的现象级人物。但问题来了:为什么同样是看直…

2026/7/16 5:26:32阅读更多 →
SpringBoot Actuator端点安全加固实战:从风险识别到配置修复

SpringBoot Actuator端点安全加固实战:从风险识别到配置修复

1. 项目概述:为什么Actuator端点会成为安全重灾区?如果你在用SpringBoot,那你大概率也接触过Actuator。这个组件简直是开发者的“瑞士军刀”,健康检查、指标监控、环境信息、线程dump,动动手指调用几个HTTP端点就能拿到…

2026/7/16 5:26:32阅读更多 →
利用正则表达式实现JDBC URL参数的安全校验与风险防护

利用正则表达式实现JDBC URL参数的安全校验与风险防护

1. JDBC URL安全校验的必要性数据库连接是Java应用中最关键也最脆弱的环节之一。去年我们团队在金融项目中就遇到过真实案例:攻击者通过精心构造的JDBC URL参数,利用autoDeserialize特性成功注入恶意代码,导致整个支付系统沦陷。事后分析发现…

2026/7/16 5:26:32阅读更多 →
C++实现HDLC协议栈:从原理到嵌入式工业通信实战

C++实现HDLC协议栈:从原理到嵌入式工业通信实战

1. 项目概述:为什么要在C里折腾HDLC?如果你在嵌入式、工业通信或者一些老牌通信设备公司的代码里翻过,大概率会碰到HDLC(高级数据链路控制)协议。乍一看,这协议名字里带个“高级”,但其实是上个…

2026/7/16 5:46:46阅读更多 →
PCB设计工程师核心技能与学习路径:从入门到进阶

PCB设计工程师核心技能与学习路径:从入门到进阶

这次我们来聊聊PCB设计工程师这个岗位到底需要掌握哪些技能,哪些内容可以暂时放一放。对于刚入行的工程师来说,最头疼的就是不知道学习重点在哪里,担心学了一堆用不上的东西,反而错过了核心技能。PCB设计工程师主要负责电路板的设…

2026/7/16 5:46:46阅读更多 →
【AI总结】2026年6月 主流国内外大模型总结

【AI总结】2026年6月 主流国内外大模型总结

目录 引言一、 国际主流模型 1. OpenAI GPT 系列2. Anthropic Claude 系列3. Google Gemini 系列4. Meta Llama 系列5. xAI Grok 系列6. 其他值得关注的国际模型 二、 国内主流模型 1. 百度 文心大模型2. 阿里 通义千问3. 腾讯 混元大模型4. 字节跳动 豆包大模型 / 扣子5. 智谱…

2026/7/16 5:46:46阅读更多 →
Java循环控制进阶:while与do..while的实战抉择与break/continue的精准调控

Java循环控制进阶:while与do..while的实战抉择与break/continue的精准调控

1. 为什么需要while和do..while循环?在日常编程中,我们经常遇到需要重复执行某段代码的场景。比如读取用户输入直到输入合法、处理文件中的每一行数据、或者游戏中的主循环。这时候,循环结构就派上用场了。Java提供了三种主要的循环结构&…

2026/7/16 5:46:46阅读更多 →
【2014-01-27】cocos2dx学习笔记:CCNode回调流程

【2014-01-27】cocos2dx学习笔记:CCNode回调流程

[历史归档] 本文原发布于 cstriker1407.info 个人博客,内容为历史存档,仅供参考。 发布时间: 2014-01-27 | 标题:cocos2dx学习笔记:CCNode回调流程 | 分类: 编程 / C &&…

2026/7/16 5:46:46阅读更多 →
VC++ MFC桌面时钟开发:从定时器到系统集成的实战指南

VC++ MFC桌面时钟开发:从定时器到系统集成的实战指南

1. 项目概述与核心价值最近在整理一些老项目,发现很多开发者对VC和MFC的印象还停留在“古老”、“过时”的层面。其实,用VC和MFC来打造一个功能完备的桌面应用,尤其是像多功能时钟这种需要稳定后台运行、实时界面交互的程序,依然是…

2026/7/16 5:41:42阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/15 6:42:19阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/15 6:12:45阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/15 10:54:00阅读更多 →
A--10 Codex Review与GitHub PR工作流实战指南:从代码审查到安全合并

A--10 Codex Review与GitHub PR工作流实战指南:从代码审查到安全合并

摘要:本文系统讲解如何利用Codex App的Review功能与GitHub PR工作流,实现从代码修改到安全合并的完整流程。涵盖Review面板深度使用、/review命令实战、GitHub Connector配置、PR描述撰写技巧,以及常见问题排查方法。通过多个实战案例和流程图,帮助开发者建立高效的AI辅助代…

2026/7/16 0:00:38阅读更多 →
遗传算法解5皇后问题:从Hello World到工业优化的进化实验室

遗传算法解5皇后问题:从Hello World到工业优化的进化实验室

1. 项目概述:为什么用遗传算法解5皇后问题,而不是直接回溯?我带过十几届算法课,也给不少初创团队做过AI架构咨询。每次讲到组合优化问题,学生和工程师的第一反应永远是“写个回溯试试”。这没错——55棋盘上找所有合法…

2026/7/16 0:00:38阅读更多 →
5.1V稳压管输出为何只有4.7V?工作电流与负载影响分析

5.1V稳压管输出为何只有4.7V?工作电流与负载影响分析

前几天调试一个简单的电源模块,用到了5.1V稳压管。电路接好,上电测试,万用表一量——输出居然只有4.7V。第一反应是稳压管坏了,换了一个新的,结果还是4.7V。这让我想起很多初学者都会遇到的困惑:明明标称5.…

2026/7/16 0:00:38阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/15 15:50:47阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/15 8:52:38阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/15 14:06:23阅读更多 →