Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
bc7eddcd
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
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看板
未验证
提交
bc7eddcd
编写于
7月 28, 2023
作者:
L
LiAn
提交者:
Gitee
7月 28, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update zh-cn/application-dev/quick-start/arkts-watch.md.
Signed-off-by:
N
LiAn
<
lian15@huawei.com
>
上级
3887c374
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
45 addition
and
46 deletion
+45
-46
zh-cn/application-dev/quick-start/arkts-watch.md
zh-cn/application-dev/quick-start/arkts-watch.md
+45
-46
未找到文件。
zh-cn/application-dev/quick-start/arkts-watch.md
浏览文件 @
bc7eddcd
...
...
@@ -52,6 +52,51 @@
## 使用场景
### \@Watch和自定义组件更新
以下示例展示组件更新和
\@
Watch的处理步骤。count在CountModifier中由
\@
State装饰,在TotalView中由
\@
Prop装饰。
```
ts
@
Component
struct
TotalView
{
@
Prop
@
Watch
(
'
onCountUpdated
'
)
count
:
number
;
@
State
total
:
number
=
0
;
// @Watch cb
onCountUpdated
(
propName
:
string
):
void
{
this
.
total
+=
this
.
count
;
}
build
()
{
Text
(
`Total:
${
this
.
total
}
`
)
}
}
@
Entry
@
Component
struct
CountModifier
{
@
State
count
:
number
=
0
;
build
()
{
Column
()
{
Button
(
'
add to basket
'
)
.
onClick
(()
=>
{
this
.
count
++
})
TotalView
({
count
:
this
.
count
})
}
}
}
```
处理步骤:
1.
CountModifier自定义组件的Button.onClick点击事件自增count。
2.
由于
\@
State count变量更改,子组件TotalView中的
\@
Prop被更新,其
\@
Watch('onCountUpdated')方法被调用,更新了子组件TotalView 中的total变量。
3.
子组件TotalView中的Text重新渲染。
### \@Watch与\@Link组合使用
...
...
@@ -127,49 +172,3 @@ struct BasketModifier {
3.
状态管理框架调用
\@
Watch函数BasketViewer onBasketUpdated 更新BaketViewer TotalPurchase的值;
4.
\@
Link shopBasket的改变,新增了数组项,ForEach组件会执行item Builder,渲染构建新的Item项;
\@
State totalPurchase改变,对应的Text组件也重新渲染;重新渲染是异步发生的。
### \@Watch和自定义组件更新
以下示例展示组件更新和
\@
Watch的处理步骤。count在CountModifier中由
\@
State装饰,在TotalView中由
\@
Prop装饰。
```
ts
@
Component
struct
TotalView
{
@
Prop
@
Watch
(
'
onCountUpdated
'
)
count
:
number
;
@
State
total
:
number
=
0
;
// @Watch cb
onCountUpdated
(
propName
:
string
):
void
{
this
.
total
+=
this
.
count
;
}
build
()
{
Text
(
`Total:
${
this
.
total
}
`
)
}
}
@
Entry
@
Component
struct
CountModifier
{
@
State
count
:
number
=
0
;
build
()
{
Column
()
{
Button
(
'
add to basket
'
)
.
onClick
(()
=>
{
this
.
count
++
})
TotalView
({
count
:
this
.
count
})
}
}
}
```
处理步骤:
1.
CountModifier自定义组件的Button.onClick点击事件自增count。
2.
由于
\@
State count变量更改,子组件TotalView中的
\@
Prop被更新,其
\@
Watch('onCountUpdated')方法被调用,更新了子组件TotalView 中的total变量。
3.
子组件TotalView中的Text重新渲染。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录