首页 > 编程笔记 > 通用技能 阅读:1

ArkTS @Link装饰器的用法(附带实例)

在项目开发的过程中如果只有 @Prop 父子单向同步,那将有许多场景在开发的过程中产生过多不必要的代码。因此,HarmonyOS 不仅提供了单向数据同步,还提供了父子双向同步的 @Link 方法。

@Link 装饰器用于创建双向绑定,使得父组件和子组件之间的数据能够实时同步更新。注意,@Link装饰器不能在 @Entry 装饰的自定义组件中使用。

接下来通过一个案例来讲解 @Link 的使用方法。

父组件代码结构如下图所示:


图 1 父组件代码结构

子组件代码结构如下图所示:


图 2 子组件代码结构

在父组件中通过 @State 定义变量 countDownStartValue,子组件通过 @Link 使用组件传值的方式来接收变量,此时便可以实现父、子组件数据的双向同步。

当单击父组件的“+1”或者“-1”按钮时父、子组件的值会同时改变;同样单击子组件的“+1”或者“-1”按钮时父、子组件的值也会同时改变,从而实现了父、子组件的双向同步。

这里需要注意的是子组件的传值方式:
CountDownComponent({ count: $countDownStartValue })
这里 $countDownStartValue 可以写成 this.countDownStartValue,主要区别于是否添加 $ 符号。Count 既是接收的变量,也是 @Link 装饰的变量。

相关文章