从 ArkTS 开始:鸿蒙应用声明式 UI 开发的三个关键概念

举报
yd_219600272 发表于 2026/11/04 11:41:32 2026/11/04
【摘要】 在鸿蒙(HarmonyOS)应用开发中,ArkTS 与 ArkUI 构成了声明式开发的核心。相比传统的命令式写法,声明式 UI 最大的变化是:开发者描述“界面应该是什么样”,而不是一步步操作控件去“变成什么样”。下面结合实践中的体会,梳理三个最容易踩坑也最关键的概念。一、状态驱动视图@State、@Prop、@Link 这些装饰器决定了数据的流动方向。@State 是组件内部状态,变更会触发...

在鸿蒙(HarmonyOS)应用开发中,ArkTS 与 ArkUI 构成了声明式开发的核心。相比传统的命令式写法,声明式 UI 最大的变化是:开发者描述“界面应该是什么样”,而不是一步步操作控件去“变成什么样”。下面结合实践中的体会,梳理三个最容易踩坑也最关键的概念。

一、状态驱动视图

@State、@Prop、@Link 这些装饰器决定了数据的流动方向。@State 是组件内部状态,变更会触发所属组件重新渲染;@Prop 是父组件传下来的单向副本,子组件改它不会影响父组件;@Link 则是双向引用,父子共享同一份数据。实践中常见的问题是:把本该用 @Link 的数据写成 @Prop,结果子组件修改后父组件界面不刷新,排查很久才发现是数据流向搞错了。

二、组件复用与构建函数

ArkUI 支持用 @Builder 抽取局部 UI,用 @Component 抽取可复用组件。区别在于:@Builder 更像“模板片段”,没有自己的生命周期和状态;@Component 有独立的状态与生命周期,适合封装带交互的模块。一个实用的经验是——只做展示、无内部状态的片段用 @Builder,需要自己维护状态或响应用户操作的就抽成 @Component,否则容易出现状态互相污染的奇怪现象。

三、布局与自适应

ArkUI 的布局以 Flex、Column、Row、Stack 为基础,配合百分比、vp 单位和 Grid 的栅格能力完成适配。跨设备场景下,建议优先使用相对单位和栅格断点,而不是写死像素;同时把断点判断收敛到统一的工具函数里,避免每个页面各写一套,后期维护成本会低很多。

四、小结

ArkTS 的学习曲线主要集中在前两点:理解状态流向,以及分清组件与构建函数的使用边界。把这两件事理顺之后,声明式 UI 的开发效率会明显提升——界面改动只需要改状态,剩下的重绘交给框架。对于想入门鸿蒙的开发者,建议从一个纯端侧的小应用(比如待办清单、计算器)开始,把状态管理和组件拆分练熟,再进入端云协同的复杂场景。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。