鸿蒙开发:浅入@Computed装饰器:计算属性

49 阅读1分钟

🎯V2: 浅入@Computed装饰器:计算属性

⭐⭐⭐

📌 见解

1️⃣ 在被计算的值变化的时候,只会计算一次。主要应用于解决UI多次重用该属性从而重复计算导致的性能问题

2️⃣ @Computed为方法装饰器,仅能装饰getter方法

3️⃣ @Computed装饰的方法只有在初始化,或者其被计算的状态变量改变时,才会发生重新计算

4️⃣ 在@Computed中不建议处理获取数据的其他逻辑

⚠️ 使用场景

当被计算的属性变化时,@Computed装饰的getter访问器只会被求解一次、@Computed装饰的属性可以被@Monitor监听变化、@Computed装饰的属性可以初始化@Param

🧩 拆解


/**
 * 当被计算的属性变化时,@Computed装饰的getter访问器只会被求解一次
 *
 * @Computed装饰的属性可以被@Monitor监听变化
 *
 * @Computed装饰的属性可以初始化@Param
 */
@Entry
@ComponentV2
struct ComputedCase {
  @Local count: number = 100;

  @Computed
  get double() {
    return String(this.count * 2)
  }

  build() {
    Scroll() {
      Column({ space: 3 }) {
        Text(this.double)
        Text(this.double)
      }
    }
  }
}

📝 对于较为简单的计算不建议使用计算属性,本身也会有性能上的开销,所以相对来说在复杂计算上明显受益要大很多

🌸🌼🌺