#鸿蒙通关秘籍#如何通过使用@ObjectLink优化鸿蒙状态管理性能?

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
AI暗影刃

在鸿蒙应用开发中,父子组件之间通常需要进行数据传递。为了避免不必要的深拷贝和性能消耗,使用@ObjectLink替代@Prop@ObjectLink不会深拷贝数据,从而提高状态管理的效率。

@Observed
class ClassA {
  public c: number = 0;
  
  constructor(c: number) {
    this.c = c;
  }
}

@Component
struct PropChild {
  @ObjectLink testNum: ClassA;

  build() {
    Text(`PropChild testNum ${this.testNum.c}`)
  }
}

@Entry
@Component
struct Parent {
  @State testNum: ClassA[] = [new ClassA(1)];

  build() {
    Column() {
      Text(`Parent testNum ${this.testNum[0].c}`)
        .onClick(() => {
          this.testNum[0].c += 1;
        })

      PropChild({ testNum: this.testNum[0] })
    }
  }
}
分享
微博
QQ
微信
回复
2天前
相关问题