🎯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)
}
}
}
}
📝 对于较为简单的计算不建议使用计算属性,本身也会有性能上的开销,所以相对来说在复杂计算上明显受益要大很多
🌸🌼🌺