目录
概述
@State装饰的变量,可以称为状态变量,一旦变量拥有了状态属性,就和组件的渲染绑定起来。当状态改变时,UI会发生对应的渲染改变。
@State装饰的变量,与声明式范式中的其他被装饰变量一样,是私有的,只能从组件内部访问,在声明时必须指定其类型和本地初始化。初始化也可选择使用命名参数机制从父组件完成初始化。
@State装饰的变量拥有以下特点:
1、@State装饰的变量与子组件中的@Prop、@Link或@ObjectLink装饰变量之间建立单向或双向数据同步。
2、@State装饰的变量生命周期与其所属自定义组件的生命周期相同。
装饰器的使用规则
@State装饰器 | 说明 |
同步类型 | 不与父组件中任何类型的变量同步,即不提供父子组件之间数据同步 |
允许装饰的变量类型 | Object、class、string、number、boolean、enum以及这些类型的数组。进行嵌套时,被嵌套的属性变化不能实时更新。(比如对象里边嵌套了一个对象,被嵌套的对象属性发生改变时不会触发渲染更新,但实际上数据会随业务逻辑更新,当其他值的修改或其他组件触发页面渲染时会将更新后的数据重新渲染) |
被装饰变量的初始值 | 必须本地初始化 |
是否支持组件外访问 | 不支持,只能在组件内访问 |
以上原理内容部分引自鸿蒙开发文档-@State装饰器