參考文檔:
文檔中心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繼承類
- 繼承類,如圖中右上角代碼所示,就是很普通的類繼承關系,這點是一致的。
- 嵌套: 嵌套類在傳統的概念上,會將內部類和外部類作為嵌套的關系。但是在華為的官方文檔中,并非如此,它把與本類存在關聯關系的屬性所對應的類,稱之為嵌套。我們首先把概念核對清楚。
深度觀測能力
深度觀測能力指的就是對上述嵌套現象中,保證一個類的層次即使不是第一層,即使被嵌套了其內部屬性產生變化的時候,依然可以觀測得到。