Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
337fffa0
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看板
未验证
提交
337fffa0
编写于
3月 26, 2022
作者:
L
LiAn
提交者:
Gitee
3月 26, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update zh-cn/application-dev/ui/ts-component-states-state.md.
Signed-off-by:
N
LiAn
<
lian15@huawei.com
>
上级
087db37e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
10 deletion
+10
-10
zh-cn/application-dev/ui/ts-component-states-state.md
zh-cn/application-dev/ui/ts-component-states-state.md
+10
-10
未找到文件。
zh-cn/application-dev/ui/ts-component-states-state.md
浏览文件 @
337fffa0
# @State
**@State**
装饰的变量是组件内部的状态数据,当这些状态数据被修改时,将会调用所在组件的
**build**
方法进行UI刷新。
@State装饰的变量是组件内部的状态数据,当这些状态数据被修改时,将会调用所在组件的build
方法进行UI刷新。
**@State**
状态数据具有以下特征:
@State
状态数据具有以下特征:
-
**支持多种类型:**
允许
**class**
、
**number**
、
**boolean**
、
**string**
强类型的按值和按引用类型。允许这些强类型构成的数组,即
**Array<class>**
、
**Array<string>**
、
**Array<boolean>**
、
**Array<number>。**
不允许
**object**
和
**any。**
-
支持多种类型:允许class、number、boolean、string强类型的按值和按引用类型。允许这些强类型构成的数组,即Array
<
class
>
、Array
<
string
>
、Array
<
boolean
>
、Array
<
number
>
。不允许object和any。
-
**支持多实例:**
组件不同实例的内部状态数据独立。
-
支持多实例:
组件不同实例的内部状态数据独立。
-
**内部私有:**
标记为
**@State**
的属性是私有变量,只能在组件内访问。
-
内部私有:标记为@State
的属性是私有变量,只能在组件内访问。
-
**需要本地初始化:**
必须为所有
**@State**
变量分配初始值,将变量保持未初始化可能导致框架行为未定义。
-
需要本地初始化:必须为所有@State
变量分配初始值,将变量保持未初始化可能导致框架行为未定义。
-
**创建自定义组件时支持通过状态变量名设置初始值:**
在创建组件实例时,可以通过变量名显式指定
**@State**
状态属性的初始值
**。**
-
创建自定义组件时支持通过状态变量名设置初始值:在创建组件实例时,可以通过变量名显式指定@State状态属性的初始值。
## 简单类型的状态属性示例
...
...
@@ -91,11 +91,11 @@ struct MyComponent {
在上述示例中:
-
用户定义的组件
**MyComponent**
定义了
**@State**
状态变量
**count**
和
**title**
。如果
**count**
或
**title**
的值发生变化,则执行
**MyComponent**
的
**build**
方法来重新渲染组件;
-
用户定义的组件
MyComponent定义了@State状态变量count和title。如果count或title的值发生变化,则执行MyComponent的build
方法来重新渲染组件;
-
**EntryComponent**
中有多个
**MyComponent**
组件实例,第一个
**MyComponent**
内部状态的更改不会影响第二个
**MyComponent**
;
-
EntryComponent中有多个MyComponent组件实例,第一个MyComponent内部状态的更改不会影响第二个MyComponent
;
-
创建
**MyComponent**
实例时通过变量名给组件内的变量进行初始化,如:
-
创建
MyComponent
实例时通过变量名给组件内的变量进行初始化,如:
```
MyComponent({title: {value: 'Hello, World 2'}, count: 7})
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录