鸿蒙 ArkUI 状态管理

wx68f6f7bae91c2
发布于 2025-10-29 13:10
浏览
0收藏

鸿蒙 ArkUI 状态管理

看待 ArkUI 的状态管理

  • ArkUI 是声明式 UI:UI = State 的函数。当“状态”发生变化时框架负责重新渲染受影响的部分。这个思想和 React/Compose/SwiftUI 很像,但 ArkTS 用装饰器/注解(decorators)+ 不同作用域的存储来表达状态。

  • 核心目标:最小化可变状态、把状态放在合适的作用域、避免不必要的重渲染。这三条,贯穿所有实践策略。

常用装饰器与存储(归类与选用建议)

@State(组件内部状态)
适合组件自身拥有、且只影响该组件或其子组件的可变数据。简单、常用。修改会触发绑定 UI 的重渲染。

@Local(或 Local 装饰器)
用于页面级共享状态:当页面下多个子组件需要共享同一份临时状态时,优先考虑 LocalStorage / Local。它比全局更轻量,易于释放。

@Observed(观察外部对象)
当状态由“外部对象/模型”持有(例如 view model / store)且需要被多个组件订阅时,使用被观察(Observed)模型,可以监听复杂对象内部变化

AppStorage(应用/长期共享存储)
全局或跨页面的持久/共享状态:配置、主题、窗口避让等常量或跨页面共享数据适合放这里。V2 简化了 API,提供 connect 等更直观的用法。

@Link(双向绑定)
用于组件间的双向数据绑定(例如表单输入与父级状态),使用时注意边界,避免复杂耦合。

总结

ArkUI 的状态管理思想并不复杂:把数据当成驱动 UI 的单一来源,配合一套以装饰器为中心的可观察系统,把状态放在合适的作用域并保持最小可变区域。从工程实践看,关键不是掌握每个装饰器的语法,而是设计好状态边界、约束修改入口、优先用小粒度状态。

标签
收藏
回复
举报
回复
    相关推荐