ArkTs之状态管理七

无名的Pupil
发布于 2025-3-19 15:39
浏览
0收藏

在上一章节中我们介绍完了管理应用拥有的状态,在我们的篇幅一种也就是状态管理(V1)中还有“其他”类别的状态管理修饰器,这一篇章中让我们来了解一下@Watch装饰器
首先先让我们介绍一下@Watch装饰器
@Watch应用于对状态变量的监听。如果我们需要关注某个状态变量的值是否改变,可以使用@Watch为状态变量设置回调函数。
@Watch提供了状态变量的监听能力,@Watch仅能监听到可以观察到的变化。@Watch在ArkUI框架内部判断数值有无更新使用的是严格相等(===),遵循严格相等规范。当在严格相等为false的情况下,就会触发@Watch的回调。
@Watch修饰器要写在@State @Prop @Link @Provide的修饰符下面
装饰器的说明
装饰器的参数: 必填,且字符串中需要有引号
可装饰的自定义组件变量: 可以监听所有装饰器修饰的状态变量。不允许监听常规变量
限制条件: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/arkts-watch#限制条件 可查阅官网进行阅读

接下来我们直接开始使用@Watch修饰器进行操作
[@Watch1.mp4]
https://live.csdn.net/v/469294
@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 })
}
}
}
从视频中不难看出,当我点击按钮时count的值变为3,也就对应了我们@Watch中修饰的函数onUpdate,其实很简单的理解就是,@Watch可以主动检测数据变化,并且绑定一个函数,当我们定义的变量发生变化时触发这个绑定的函数。这也就是为啥视频内容中Num的值可以一直改变而count的值变为3后就不再发生改变了

Harmony OS NEXT API12
本次就暂时介绍这么多
谢谢各位的观看,有错误不足的地方, 本人乐于接受各位的意见

分类
标签
收藏
回复
举报
回复
    相关推荐