状态管理-@State

本文详细介绍了鸿蒙OS中@State装饰器的使用规则,包括装饰的变量类型(如string、number、boolean、enum、class和数组),数据同步特性,以及对象和嵌套属性的处理。通过示例代码展示了如何在组件中使用@State实现状态管理。
摘要由CSDN通过智能技术生成

目录

概述

装饰器的使用规则

相关案例

@State装饰string、number、boolean

@State装饰enum

@State装饰class,Object及其嵌套

@State装饰数组,包含嵌套属性


概述

@State装饰的变量,可以称为状态变量,一旦变量拥有了状态属性,就和组件的渲染绑定起来。当状态改变时,UI会发生对应的渲染改变。

@State装饰的变量,与声明式范式中的其他被装饰变量一样,是私有的,只能从组件内部访问,在声明时必须指定其类型和本地初始化。初始化也可选择使用命名参数机制从父组件完成初始化。

声明式范式icon-default.png?t=N7T8https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/arkts-ui-development-overview-0000001438467628-V3

@State装饰的变量拥有以下特点:

1、@State装饰的变量与子组件中的@Prop、@Link或@ObjectLink装饰变量之间建立单向或双向数据同步。

2、@State装饰的变量生命周期与其所属自定义组件的生命周期相同。

装饰器的使用规则

@State装饰器 说明
同步类型 不与父组件中任何类型的变量同步,即不提供父子组件之间数据同步
允许装饰的变量类型 Object、class、string、number、boolean、enum以及这些类型的数组。进行嵌套时,被嵌套的属性变化不能实时更新。(比如对象里边嵌套了一个对象,被嵌套的对象属性发生改变时不会触发渲染更新,但实际上数据会随业务逻辑更新,当其他值的修改或其他组件触发页面渲染时会将更新后的数据重新渲染
被装饰变量的初始值 必须本地初始化
是否支持组件外访问 不支持,只能在组件内访问

以上原理内容部分引自鸿蒙开发文档-@State装饰器

相关案例

  • 23
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

g-yli

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值