未验证 提交 337fffa0 编写于 作者: L LiAn 提交者: Gitee

update zh-cn/application-dev/ui/ts-component-states-state.md.

Signed-off-by: NLiAn <lian15@huawei.com>
上级 087db37e
# @State # @State
**@State**装饰的变量是组件内部的状态数据,当这些状态数据被修改时,将会调用所在组件的**build**方法进行UI刷新。 @State装饰的变量是组件内部的状态数据,当这些状态数据被修改时,将会调用所在组件的build方法进行UI刷新。
**@State**状态数据具有以下特征: @State状态数据具有以下特征:
- **支持多种类型:**允许**class****number****boolean****string**强类型的按值和按引用类型。允许这些强类型构成的数组,即**Array&lt;class&gt;****Array&lt;string&gt;****Array&lt;boolean&gt;****Array&lt;number&gt;。**不允许**object****any。** - 支持多种类型:允许class、number、boolean、string强类型的按值和按引用类型。允许这些强类型构成的数组,即Array&lt;class&gt;、Array&lt;string&gt;、Array&lt;boolean&gt;、Array&lt;number&gt;。不允许object和any。
- **支持多实例:**组件不同实例的内部状态数据独立。 - 支持多实例:组件不同实例的内部状态数据独立。
- **内部私有:**标记为**@State**的属性是私有变量,只能在组件内访问。 - 内部私有:标记为@State的属性是私有变量,只能在组件内访问。
- **需要本地初始化:**必须为所有**@State**变量分配初始值,将变量保持未初始化可能导致框架行为未定义。 - 需要本地初始化:必须为所有@State变量分配初始值,将变量保持未初始化可能导致框架行为未定义。
- **创建自定义组件时支持通过状态变量名设置初始值:**在创建组件实例时,可以通过变量名显式指定**@State**状态属性的初始值**。** - 创建自定义组件时支持通过状态变量名设置初始值:在创建组件实例时,可以通过变量名显式指定@State状态属性的初始值。
## 简单类型的状态属性示例 ## 简单类型的状态属性示例
...@@ -91,11 +91,11 @@ struct MyComponent { ...@@ -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}) 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.
先完成此消息的编辑!
想要评论请 注册