用途定位
该技能旨在为 HarmonyOS 应用开发提供一套专家级的规范与指导。它适用于使用 ArkTS、ArkUI、Stage 模型以及分布式能力构建 HarmonyOS 应用的场景。
核心原则
在开发 HarmonyOS 应用时,应遵循以下核心原则:
- ArkTS 优先:使用 ArkTS 并保持严格的类型安全,禁止使用 any 或动态类型。
- 声明式 UI:使用 ArkUI 的声明式组件和状态管理来构建界面。
- Stage 模型:使用现代的 Stage 模型(UIAbility),而非旧版 FA 模型。
- 分布式设计:从一开始就利用跨设备能力。
- 元服务:考虑使用元服务和卡片来提供轻量级体验。
- 一次开发,多端部署:为多设备适配(手机、平板、手表、电视)进行设计。
主要能力与强制规则
该技能规定了必须遵守的硬性规则:
- 禁止动态类型:ArkTS 禁止动态类型。不得使用
any、类型断言或动态属性访问。应使用接口定义类型,对于动态键可使用Record类型。 - 禁止直接修改状态:不得直接修改嵌套对象中的
@State/@Prop变量。必须使用不可变更新方式(如展开运算符创建新对象)来触发 UI 更新。对于数组,禁止使用push,应使用展开运算符创建新数组。 - 仅使用 Stage 模型:始终使用 Stage 模型(UIAbility),不得使用已弃用的 FA 模型(PageAbility)。
- 组件复用:应将可复用的 UI 抽取为
@Component,避免在build()方法中编写复杂的行内 UI。
使用方式
状态装饰器选择
文档提供了状态装饰器的选择指南:
@State:组件拥有的状态,变化时触发重新渲染。@Prop:父组件传值,子组件获得副本(单向)。@Link:父组件传递引用,子组件可修改(双向)。@Provide/@Consume:祖先组件向所有后代提供/消费值。@StorageLink/@StorageProp:与 AppStorage 同步,双向/单向绑定。@Observed/@ObjectLink:用于可观察对象及关联父组件中的@Observed对象。
项目结构
推荐的项目架构包含 entry 模块、common 库模块和 features 功能模块。entry 模块内部包含 entryability、pages、components、viewmodel、model、service、repository、utils 和 constants 等目录。
架构分层从下到上依次为:数据源(本地/远程)、Repository 层(数据访问抽象)、Service 层(业务逻辑)、ViewModel 层(状态管理与 UI 逻辑)、UI 层(ArkUI 组件)。
ArkUI 组件模式
文档提供了多种组件模式的示例:
- 基础组件结构,包括
@Prop、@State、getter 计算属性、生命周期与事件处理。 - 配合
LazyForEach使用的列表,包括数据源实现与列表渲染。 - 自定义弹窗
@CustomDialog的定义与使用。
适用场景
该技能适用于构建基于 ArkTS 和 ArkUI 的 HarmonyOS 应用,特别是需要遵循 Stage 模型、严格类型安全和组件化开发的场景。
限制
关于该技能的收费、价格、平台或具体效果等信息,暂未提供。