从 ArkTS 开始:鸿蒙应用声明式 UI 开发的三个关键概念
在鸿蒙(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 的开发效率会明显提升——界面改动只需要改状态,剩下的重绘交给框架。对于想入门鸿蒙的开发者,建议从一个纯端侧的小应用(比如待办清单、计算器)开始,把状态管理和组件拆分练熟,再进入端云协同的复杂场景。
- 点赞
- 收藏
- 关注作者
评论(0)