HarmonyOS鸿蒙Next V2状态管理神器 @ObservedV2
HarmonyOS鸿蒙Next V2状态管理神器 @ObservedV2
HarmonyOs Next V2 状态管理神器 @ObservedV2
背景
最近Harmony 应用开发技术中推出了新版的状态管理技术,试用过后,直呼很香。我们来看为什么?
因为在 Harmony 应用开发过程中,我们一定会碰到监听嵌套类/深层次属性的需求,如希望 son的weight属性变化后,可以引起UI刷新。
@Observed 装饰器和**@ObjectLink**装饰器
针对以上需求,那之前,也就是所谓的 v1 版本是怎么做的呢? 是通过 **@Observed装饰器和@ObjectLink**装饰器实现的。
其中,这一套解决方案有一个很严重的、破坏性的问题- 必须搭配自定义组件一起使用。
所以,你代码本来是这样子的🤓:
为了实现深层次数据的监听,必须改造-破坏你的UI结构,要引入自定义组件,那么就变成了这样子😭:
大家看看,这个代码的风格,是人干的事情吗
接下来,我们看看更新后的技术解决方案是怎么样的 👇👇👇👇
@ObservedV2装饰器和@Trace装饰器
介绍
为了增强状态管理框架对类对象中属性的观测能力,开发者可以使用**@ObservedV2**装饰器和@Trace装饰器装饰类以及类中的属性。
其中,官网上的表达如下:
- **@ObservedV2**装饰器与 @Trace 装饰器需要配合使用,单独使用 **@ObservedV2**装饰器 @Trace 装饰器没有任何作用。
- 被 @Trace装饰器装饰的属性property变化时,仅会通知property关联的组件进行刷新。
- 在嵌套类中,嵌套类中的属性property被 **@Trace**装饰且嵌套类被 @ObservedV2 装饰时,才具有触发UI刷新的能力。
- 在继承类中,父类或子类中的属性property被 @Trace 装饰且该property所在类被 @ObservedV2 装饰时,才具有触发UI刷新的能力。
- 未被 @Trace 装饰的属性用在UI中无法感知到变化,也无法触发UI刷新。
- @ObservedV2 的类实例目前不支持使用JSON.stringify进行序列化。
我们针对以上总结一下。使用的技巧也很简单
- 要监听的属性要添加 @Trace 装饰器
- 被监听的属性 所在的类要添加 @ObservedV2
- 继承类 ,继承其中的被监听的属性时,可以等价视为是给出自己的类添加了 @Trace 装饰器监听。
是不要对比 **@Observed**装饰器和 @ObjectLink 要简单轻松多了?
总结
- 当我们在开发中,如果碰到了监听深层次属性的需求,可以使用 **@Observed**装饰器和 **@ObjectLink**装饰器 和 **@ObservedV2**装饰器和 **@Trace**装饰器
- **@Observed**装饰器和 **@ObjectLink**装饰器 是比较稳定的技术,但是开发效率低,体验不好,对代码具有入侵型
- **@ObservedV2**装饰器和 @Trace 装饰器是新推出的v2的版本,目前还在试用期,大概率会成为稳定版。对代码比较友好,如果是新的业务,可以优先考虑使用它。
更多关于HarmonyOS鸿蒙Next V2状态管理神器 @ObservedV2的实战教程也可以访问 https://www.itying.com/category-93-b0.html
HarmonyOS鸿蒙Next V2中的@ObservedV2是一个用于状态管理的新特性,主要用于简化组件间的数据绑定和状态更新。@ObservedV2通过装饰器模式,允许开发者将数据模型标记为可观察对象,当这些对象的属性发生变化时,相关组件会自动更新。
具体来说,@ObservedV2装饰器可以应用于类,使得该类实例的属性变化能够被系统自动追踪。当属性值发生变化时,依赖该属性的UI组件会自动重新渲染,确保UI与数据保持同步。这种机制减少了手动更新UI的代码量,提升了开发效率。
@ObservedV2还支持嵌套对象的观察,即如果被观察对象的属性也是一个对象,系统会递归地观察其内部属性的变化。此外,@ObservedV2与鸿蒙的ArkUI框架深度集成,能够与@State、@Link等状态管理装饰器协同工作,进一步简化复杂应用的状态管理。
总的来说,@ObservedV2是鸿蒙Next V2中一个强大的状态管理工具,通过自动化的数据绑定和UI更新机制,帮助开发者更高效地构建响应式应用。
更多关于HarmonyOS鸿蒙Next V2状态管理神器 @ObservedV2的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
@ObservedV2 是 HarmonyOS 鸿蒙 Next 版本中引入的状态管理工具,旨在简化组件间的数据绑定与状态更新。通过注解方式,开发者可以轻松标记需要观察的类或属性,系统会自动处理依赖关系,确保 UI 随状态变化实时更新。相比传统方式,@ObservedV2 提供了更高的开发效率与更好的性能优化,尤其适用于复杂界面与多层级数据交互的场景。它是构建响应式应用的关键工具之一。

