龙空技术网

鸿蒙开发(八十二):状态变量更改通知 @Watch

程序员小宋同学 105

前言:

眼前我们对“监听state”可能比较讲究,小伙伴们都需要分析一些“监听state”的相关资讯。那么小编在网摘上汇集了一些有关“监听state””的相关知识,希望同学们能喜欢,我们一起来学习一下吧!

如果我们想监听某个状态变量的更改,可以使用 @Watch 装饰器。

/** * 监听状态变量的更改 * @form * @since 9 */declare const Watch: (value: string) => PropertyDecorator;

我们可以看到 @Watch 需要一个参数 value,类型为 string。作用是接收函数名称。

每当状态变量更改时,回调此函数。

例如,监听状态变量 name 的更改,每当 name 发生更改时回调 onNameChange 函数:

@Entry@Componentstruct Index {  /**   * 状态变量   */  @State @Watch("onNameChange") name: string = "张三"  /**   * 当 name 发生更改时回调   */  onNameChange() {    console.log(`name 发生了更改1:${this.name}`)  }  build() {    Column() {      Text(this.name)      Button("修改")        .onClick(() => {          this.name = "李四"        })    }    .width('100%')  }}

运行结果:

控制台输出:

12-21 16:27:42.996 1426-11428915 I A0c0d0/JSApp: app Log: name 发生了更改:李四

从运行结果来看,确实是监听到 name 的变化。

@Watch 装饰器使用起来非常的简单,日常开发中也是很有用的。

标签: #监听state