@Watch用于监听状态变量的变化,当状态变量变化时,@Watch的回调方法将被调用。@Watch在ArkUI框架内部判断数值有无更新使用的是严格相等(===),遵循严格相等规范。当在严格相等为false的情况下,就会触发@Watch的回调。
注意:
@Component
struct TotalView {
//onCountUpdated监听函数名
@Prop @Watch('onCountUpdated') count: number;
@State total: number = 0;
// @Watch 回调
onCountUpdated(): void {
this.total += this.count;
}
build() {
Text(`Total: ${this.total}`)
.fontSize(30)
}
}
@Entry
@Component
struct Index {
@State count: number = 0;
build() {
Column() {
Button('add')
.onClick(() => {
this.count++
})
.fontSize(50)
TotalView({ count: this.count })
}
}
}
效果如下: