首页 > 其他分享 >#HarmonyOS篇:状态管理

#HarmonyOS篇:状态管理

时间:2024-11-17 22:46:26浏览次数:3  
标签:状态 AppStorage 同步 变量 管理 HarmonyOS 组件 装饰

状态管理概要

状态变量:被状态装饰器装饰的变量,状态变量值的改变会引起UI的渲染更新。
常规变量:没有被状态装饰器装饰的变量,通常应用于辅助计算。
数据源/同步源:状态变量的原始来源,可以同步给不同的状态数据。
命名参数机制:父组件通过指定参数传递给子组件的状态变量,为父子传递同步参数的主要手段。
从父组件初始化:父组件使用命名参数机制,将指定参数传递给子组件。

组件拥有的状态装饰器

@State:@State装饰的变量拥有其所属组件的状态,可以作为其子组件单向和双向同步的数据源。当其数值改变时,会引起相关组件的渲染刷新。

@Prop:@Prop装饰的变量可以和父组件建立单向同步关系,@Prop装饰的变量是可变的,但修改不会同步回父组件。

@Link:@Link装饰的变量可以和父组件建立双向同步关系,子组件中@Link装饰变量的修改会同步给父组件中建立双向数据绑定的数据源,父组件的更新也会同步给@Link装饰的变量。

@Provide/@Consume:@Provide/@Consume装饰的变量用于跨组件层级(多层组件)同步状态变量,可以不需要通过参数命名机制传递,通过alias(别名)或者属性名绑定。

@Observed:@Observed装饰class,需要观察多层嵌套场景的class需要被@Observed装饰。单独使用@Observed没有任何作用,需要和@ObjectLink、@Prop联用。

@ObjectLink:@ObjectLink装饰的变量接收@Observed装饰的class的实例,应用于观察多层嵌套场景,和父组件的数据源构建双向同步。

应用拥有的状态装饰器

AppStorage是应用程序中的一个特殊的单例LocalStorage对象,是应用级的数据库,和进程绑定,通过@StorageProp和@StorageLink装饰器可以和组件联动。

AppStorage是应用状态的“中枢”,将需要与组件(UI)交互的数据存入AppStorage,比如持久化数据PersistentStorage和环境变量Environment。UI再通过AppStorage提供的装饰器或者API接口,访问这些数据。

框架还提供了LocalStorage,AppStorage是LocalStorage特殊的单例。LocalStorage是应用程序声明的应用状态的内存“数据库”,通常用于页面级的状态共享,通过@LocalStorageProp和@LocalStorageLink装饰器可以和UI联动。

标签:状态,AppStorage,同步,变量,管理,HarmonyOS,组件,装饰
From: https://blog.csdn.net/weixin_47075554/article/details/143425483

相关文章

  • #HarmonyOS篇: 主题图标库&资源分类与访问
    主题图标库https://developer.huawei.com/consumer/cn/design/harmonyos-symbol/资源分类与访问地址https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/resource-categories-and-access-V5base目录是默认存在的目录,二级子目录element用于存放字符串......
  • JAVA开源项目 服装生产管理系统 计算机毕业设计
    博主说明:本文项目编号T066,文末自助获取源码\color{red}{T066,文末自助获......
  • 基于Java+SSM+JSP+MYSQL实现的宠物领养收养管理系统功能设计与实现六
    一、前言介绍:免费学习:猿来入此1.1项目摘要随着人们生活水平的提高,宠物已经成为越来越多家庭的重要成员。然而,宠物的数量增长也带来了一系列问题,如流浪宠物数量的增加、宠物健康管理的缺失以及宠物领养收养信息的不透明等。这些问题不仅影响了宠物的生存状况,也给社会带来了一定......
  • 基于Java+SSM+JSP+MYSQL实现的宠物领养收养管理系统功能设计与实现五
    一、前言介绍:免费学习:猿来入此1.1项目摘要随着人们生活水平的提高,宠物已经成为越来越多家庭的重要成员。然而,宠物的数量增长也带来了一系列问题,如流浪宠物数量的增加、宠物健康管理的缺失以及宠物领养收养信息的不透明等。这些问题不仅影响了宠物的生存状况,也给社会带来了一定......
  • React--》如何高效管理前端环境变量:开发与生产环境配置详解
    在前端开发中,如何让项目在不同环境下表现得更为灵活与高效,是每个开发者必须面对的挑战,从开发阶段的调试到生产环境的优化,环境变量配置无疑是其中的关键。env配置文件:通常用于管理项目的环境变量,环境变量是一些预设的值,可以根据不同的环境(如开发环境、测试环境和生产环境)动......
  • Git版本管理系统概述及环境部署
    作者:尹正杰版权声明:原创作品,谢绝转载!否则将追究法律责任。目录一.版本控制系统VCS1.为什么使用VCS2.版本控制系统分类2.1本地版本控制系统2.2集中版本控制系统2.3分布式版本控......
  • HDLBIts习题(7):状态机
    (1)较难习题1:134题(fsm_ps2data)    有个积攒数据的过程。(1)较难习题2:135题(fsm_serial)        读清题意,有一个检验选择是否发送的进程。(3)较难习题3:137题(fsm_serialdp)    加入了奇偶校验位检测机制(4)较难习题4:138题(fsm_hdlc)   ......
  • 通过将 USB to TTL 转换器连接到路由器的串口接口,并使用串口终端软件,你可以访问路由器
    USBtoTTL是一种常见的电子接口转换器,它将USB接口转换为TTL(Transistor-TransistorLogic)电平的串行通信接口。TTL电平通常用于嵌入式系统、单片机、开发板等硬件设备之间的通信。具体来说,它是一种USB转串行通信接口的桥接器。什么是USBtoTTL?USB(UniversalSerial......
  • 提供的注册表配置段落包含了多个设置项,主要涉及Windows系统的首次运行体验(OOBE)和无人
    提供的注册表配置段落包含了多个设置项,主要涉及Windows系统的首次运行体验(OOBE)和无人值守安装(Unattend)。这些设置通常用于系统管理员或IT专业人员进行批量部署、自动化安装、以及配置系统。以下是对这些注册表键值的详细说明:1. 禁用用户首次运行体验(OOBE)plaintextCopyCode[HK......
  • 基于Springboot+Vue的停车管理系统 (含源码数据库)
    1.开发环境开发系统:Windows10/11架构模式:MVC/前后端分离JDK版本:JavaJDK1.8开发工具:IDEA数据库版本:mysql5.7或8.0数据库可视化工具:navicat服务器:SpringBoot自带apachetomcat主要技术:Java,Springboot,mybatis,mysql,vue2.视频演示地址3.功能这个系......