参考文档:
文档中心https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V14/arkts-new-observedv2-and-trace-V14#trace%E8%A3%85%E9%A5%B0%E5%AF%B9%E8%B1%A1%E6%95%B0%E7%BB%84由于V2的装饰器比V1的装饰器更加易用,尽管学习的过程中用到的都是V1的装饰器,但是我认为这个版本的装饰器未来可能会淘汰。我们只捡V2学。V2的 @ObservedV2与@Trace解决了有关于V1 @State,@Observed @Track所不具备的深度观测能力,是更好用的。
本文主要围绕类属性变化观测相关的装饰器 @ObservedV2和@Trace装饰器进行讲解。
在了解这俩装饰器前我们先做一些其他方面的预习,便于以后理解。
官方文档中所谓的深度观测能力里的“深度”指的是什么
我在学习的时候,发现官方文档中某些概念与我之前所学是有出入的。我们先校齐一下这些概念。之后再看这俩装饰器在“深度”上解决了什么问题。
先统一概念-嵌套类VS继承类
- 继承类,如图中右上角代码所示,就是很普通的类继承关系,这点是一致的。
- 嵌套: 嵌套类在传统的概念上,会将内部类和外部类作为嵌套的关系。但是在华为的官方文档中,并非如此,它把与本类存在关联关系的属性所对应的类,称之为嵌套。我们首先把概念核对清楚。
深度观测能力
深度观测能力指的就是对上述嵌套现象中,保证一个类的层次即使不是第一层,即使被嵌套了其内部属性产生变化的时候,依然可以观测得到。