!!语法:双向绑定
概述
本工程主要实现了对以下指南文档中 !!语法:双向绑定 示例代码片段的工程化,主要目标是实现指南中示例代码需要与sample工程文件同源。
!!双向绑定语法,是一个语法糖方便开发者实现数据双向绑定,用于初始化子组件的@Param和@Event。其中@Event方法名需要声明为“$”+ @Param属性名,详见使用场景。
如果使用了!!双向绑定语法,表明父组件的变化会同步给子组件,子组件的变化也会同步给父组件。 父组件未使用!!时,变化是单向的。
使用说明
在状态管理V1中,推荐使用$$实现系统组件的双向绑定。
在状态管理V2中,推荐使用!!语法糖统一处理双向绑定。
说明 !!语法从API version 12开始支持。
效果预览
| 自定义组件间双向绑定初始化页面 | 自定义组件间双向绑定数据变化页面 | 系统组件参数双向绑定初始化页面 | 系统组件参数双向绑定数据变化页面 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
工程目录
给出项目中关键的目录结构并描述它们的作用,示例如下:
entry/src/main/ets/
|---entryability
| |---EntryAbility.ets // 主进程UIAbility
|---pages
| |---index.ets // 应用首页
| |---Binding_Star.ets // 自定义组件间双向绑定页面
| |---Sys_Binding.ets // 系统组件参数双向绑定页面
具体实现
自定义组件间双向绑定
- 在Index中构造Star子组件,双向绑定父子组件中的value,并初始化子组件的@Param value和@Event $value。 双向绑定语法糖。
- 点击Index中的Button改变value值,父组件Index和子组件Star中的Text将同步更新。
- 点击子组件Star中的Button,调用this.$value(10)方法,父组件Index和子组件Star中的Text将同步更新。
- 使用限制
- !!双向绑定语法不支持多层父子组件传递。
- 不支持与@Event混用。从API version 18开始,当使用!!双向绑定语法给子组件传递参数时,给对应的@Event方法传参会编译报错。
- 当使用3个或更多感叹号(!!!、!!!!、!!!!!等)时,不支持双向绑定功能。
系统组件参数双向绑定
- bindMenu组件绑定this.isShow!!。
- Button绑定点击事件变化isShow控制展示菜单
相关权限
不涉及。
依赖
不涉及。
约束与限制
-
本示例仅支持标准系统上运行, 支持设备:华为手机。
-
HarmonyOS系统:HarmonyOS 5.0.5 Release及以上。
-
DevEco Studio版本:6.0.0 Release及以上。
-
HarmonyOS SDK版本:HarmonyOS 6.0.0 Release SDK及以上。
下载
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo code\DocsSample\ArkUISample\ArkUI_Binding > .git/info/sparse-checkout
git remote add origin https://gitcode.com/harmonyos_samples/guide-snippets.git
git pull origin master



