ArkTS @Link装饰器的用法(附带实例)
在项目开发的过程中如果只有 @Prop 父子单向同步,那将有许多场景在开发的过程中产生过多不必要的代码。因此,HarmonyOS 不仅提供了单向数据同步,还提供了父子双向同步的 @Link 方法。
@Link 装饰器用于创建双向绑定,使得父组件和子组件之间的数据能够实时同步更新。注意,@Link装饰器不能在 @Entry 装饰的自定义组件中使用。
接下来通过一个案例来讲解 @Link 的使用方法。
父组件代码结构如下图所示:

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

图 2 子组件代码结构
在父组件中通过 @State 定义变量 countDownStartValue,子组件通过 @Link 使用组件传值的方式来接收变量,此时便可以实现父、子组件数据的双向同步。
当单击父组件的“+1”或者“-1”按钮时父、子组件的值会同时改变;同样单击子组件的“+1”或者“-1”按钮时父、子组件的值也会同时改变,从而实现了父、子组件的双向同步。
这里需要注意的是子组件的传值方式:
@Link 装饰器用于创建双向绑定,使得父组件和子组件之间的数据能够实时同步更新。注意,@Link装饰器不能在 @Entry 装饰的自定义组件中使用。
接下来通过一个案例来讲解 @Link 的使用方法。
父组件代码结构如下图所示:

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

图 2 子组件代码结构
在父组件中通过 @State 定义变量 countDownStartValue,子组件通过 @Link 使用组件传值的方式来接收变量,此时便可以实现父、子组件数据的双向同步。
当单击父组件的“+1”或者“-1”按钮时父、子组件的值会同时改变;同样单击子组件的“+1”或者“-1”按钮时父、子组件的值也会同时改变,从而实现了父、子组件的双向同步。
这里需要注意的是子组件的传值方式:
CountDownComponent({ count: $countDownStartValue })这里 $countDownStartValue 可以写成 this.countDownStartValue,主要区别于是否添加 $ 符号。Count 既是接收的变量,也是 @Link 装饰的变量。