HarmonyOS 状态管理概述(简单易懂)

  • 1. 状态管理的基本概念

    • 状态变量(@State):被状态装饰器装饰的变量,值改变时会触发UI刷新。 常规变量:不会触发UI刷新,仅用于计算辅助。 数据源/同步源:状态变量的原始来源,通常从父组件传递给子组件。 命名参数机制:用于父组件向子组件传递参数。

 

  • 2. 状态管理V1

    • 状态变量的管理 @State:组件内部状态变量,数值改变时引起UI渲染刷新。 @Prop:单向绑定的属性,可变但不会同步回父组件。 @Link:双向绑定的属性,父组件与子组件数据同步。 @Provide/@Consume:用于跨组件层级的状态管理。 @Observed/@ObjectLink:观察深层嵌套的数据对象。 应用级状态管理 AppStorage:应用级全局状态管理,数据可持久化。 LocalStorage:用于页面级状态共享。

 

  • 4. V1 vs V2 主要区别

  • 3. 状态管理V2(升级版)

    • 改进点 状态变量独立于UI,数据更改直接触发视图更新。 支持深度观察,不仅限于第一层数据。 更精准的属性级更新,减少不必要的UI刷新。 更灵活的组件化设计,组件输入/输出更清晰。

    • 新装饰器 @ObservedV2/@Trace:用于深度观察对象及其属性。 @ComponentV2:新的组件装饰器,支持V2状态管理。 @Local:组件私有状态变量,不能从外部传入初始化。 @Param/@Once:组件的输入参数,支持同步传递。 @Event:用于父组件与子组件的交互,取代@Link实现双向数据流。 @Monitor:监听V2状态变量的变化,支持深层监听。 !! 语法:用于双向绑定。

 

 

  • 总结

    • ArkUI 采用 声明式UI编程,UI 是 状态(State) 的结果。 状态管理V1 主要依赖 @State、@Prop、@Link 等装饰器,但有 深度观察能力不足、更新不精确 的问题。 状态管理V2 提供了更 精准的属性级更新、深度观察、灵活的组件化设计,但仍处于迭代中,可能有部分功能缺失。 在开发 ArkUI 动态交互应用 时,建议了解 状态管理V2,合理选择装饰器,以 最小化UI刷新、提升性能。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值