Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
yang2765
Docs
提交
5afeb701
D
Docs
项目概览
yang2765
/
Docs
与 Fork 源项目一致
Fork自
OpenHarmony / Docs
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
5afeb701
编写于
3月 26, 2022
作者:
L
LiAn
提交者:
Gitee
3月 26, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update zh-cn/application-dev/ui/ts-component-states-link.md.
Signed-off-by:
N
LiAn
<
lian15@huawei.com
>
上级
a3155b19
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
13 addition
and
13 deletion
+13
-13
zh-cn/application-dev/ui/ts-component-states-link.md
zh-cn/application-dev/ui/ts-component-states-link.md
+13
-13
未找到文件。
zh-cn/application-dev/ui/ts-component-states-link.md
浏览文件 @
5afeb701
# @Link
**@Link**
装饰的变量可以和父组件的
**@State**
变量建立双向数据绑定:
@Link装饰的变量可以和父组件的@State
变量建立双向数据绑定:
-
**支持多种类型:@Link**
变量的值与
**@State**
变量的类型相同,即class、number、string、boolean或这些类型的数组;
-
支持多种类型:@Link变量的值与@State
变量的类型相同,即class、number、string、boolean或这些类型的数组;
-
**私有:**
仅在组件内访问;
-
私有:
仅在组件内访问;
-
**单个数据源:**
初始化
**@Link**
变量的父组件的变量必须是
**@State**
变量;
-
单个数据源:初始化@Link变量的父组件的变量必须是@State
变量;
-
**双向通信:**
子组件对
**@Link**
变量的更改将同步修改父组件的
**@State**
变量;
-
双向通信:子组件对@Link变量的更改将同步修改父组件的@State
变量;
-
**创建自定义组件时需要将变量的引用传递给@Link变量:**
在创建组件的新实例时,必须使用命名参数初始化所有
**@Link**
变量。
**@Link**
变量可以使用
**@State**
变量或
**@Link**
变量的引用进行初始化,
**@State**
变量可以通过'
**$**
'操作符创建引用。
-
创建自定义组件时需要将变量的引用传递给@Link变量:在创建组件的新实例时,必须使用命名参数初始化所有@Link变量。@Link变量可以使用@State变量或@Link变量的引用进行初始化,@State变量可以通过'$
'操作符创建引用。
> ![icon-note.gif](public_sys-resources/icon-note.gif)
**说明:**
>
**@Link**
变量不能在组件内部进行初始化。
> ![icon-note.gif](public_sys-resources/icon-note.gif)
说明:
>
@Link
变量不能在组件内部进行初始化。
## 简单类型示例
...
...
@@ -48,7 +48,7 @@ struct PlayButton {
}
```
**@Link**
语义是从'
**$**
'操作符引出,即
**$isPlaying**
是
**this.isPlaying**
内部状态的双向数据绑定。当您单击
**PlayButton**
时,PlayButton 的
**Image**
组件和
**Text**
组件将同时进行刷新。
@Link语义是从'$'操作符引出,即$isPlaying是this.isPlaying内部状态的双向数据绑定。当您单击PlayButton时,PlayButton 的Image组件和Text
组件将同时进行刷新。
## 复杂类型示例
...
...
@@ -88,7 +88,7 @@ struct Child {
}
```
在上面的示例中,点击
**Button1**
和
**Button2**
更改父组件中显示的文本项目列表。
在上面的示例中,点击
Button1和Button2
更改父组件中显示的文本项目列表。
## @Link、@State和@Prop结合使用示例
...
...
@@ -127,8 +127,8 @@ struct ChildB {
}
```
上述示例中,ParentView包含ChildA和ChildB两个子组件,ParentView的状态变量
**counter**
分别初始化ChildA和ChildB。
上述示例中,ParentView包含ChildA和ChildB两个子组件,ParentView的状态变量
counter
分别初始化ChildA和ChildB。
-
ChildB使用
**@Link**
建立双向状态绑定。当
**ChildB**
修改
**counterRef**
状态变量值时,该更改将同步到
**ParentView**
和
**ChildA**
共享;
-
ChildB使用
@Link建立双向状态绑定。当ChildB修改counterRef状态变量值时,该更改将同步到ParentView和ChildA
共享;
-
ChildA使用
**@Prop**
建立从
**ParentView**
到自身的单向状态绑定。当
**ChildA**
修改状态时,
**ChildA**
将重新渲染,但该更改不会传达给
**ParentView**
和
**ChildB**
。
-
ChildA使用
@Prop建立从ParentView到自身的单向状态绑定。当ChildA修改状态时,ChildA将重新渲染,但该更改不会传达给ParentView和ChildB
。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录