ArkTs之状态管理七

5 阅读2分钟

在上一章节中我们介绍完了管理应用拥有的状态,在我们的篇幅一种也就是状态管理(V1)中还有“其他”类别的状态管理修饰器,这一篇章中让我们来了解一下@Watch装饰器

首先先让我们介绍一下@Watch装饰器

@Watch应用于对状态变量的监听。如果我们需要关注某个状态变量的值是否改变,可以使用@Watch为状态变量设置回调函数。

@Watch提供了状态变量的监听能力,@Watch仅能监听到可以观察到的变化。@Watch在ArkUI框架内部判断数值有无更新使用的是严格相等(===),遵循严格相等规范。当在严格相等为false的情况下,就会触发@Watch的回调。

  @Watch修饰器要写在@State @Prop @Link @Provide的修饰符下面

装饰器的说明

装饰器的参数: 必填,且字符串中需要有引号

可装饰的自定义组件变量: 可以监听所有装饰器修饰的状态变量。不允许监听常规变量

限制条件: developer.huawei.com/consumer/cn… 可查阅官网进行阅读

接下来我们直接开始使用@Watch修饰器进行操作

@Entry
@Component
struct WatchPage {
  @State @Watch("onUpdate") count: number = 0;
  @State Num: number = 0

  onUpdate() {
    this.count = 3
  }
  build() {
    Column() {
      Text(`Count:${this.count}`).fontSize(25).fontWeight(FontWeight.Bold)
      Text(`Num:${this.Num}`).fontSize(25).fontWeight(FontWeight.Bold)
      Button("invocations")
        .onClick(() => { this.count += 1; this.Num += 1 })
    }
  }
}

live.csdn.net/v/469294 从视频中不难看出,当我点击按钮时count的值变为3,也就对应了我们@Watch中修饰的函数onUpdate,其实很简单的理解就是,@Watch可以主动检测数据变化,并且绑定一个函数,当我们定义的变量发生变化时触发这个绑定的函数。这也就是为啥视频内容中Num的值可以一直改变而count的值变为3后就不再发生改变了

Harmony OS NEXT API12

本次就暂时介绍这么多

谢谢各位的观看,有错误不足的地方, 本人乐于接受各位的意见