ArkTS学习笔记_UI界面的状态管理简述

ArkTS学习笔记_UI界面的状态管理简述

  • 背景:
    我们在UI开发中,绝大多数的UI界面都是动态的、有用户交互的,为了实现动态交互,引入了一个概念"状态",它主要是用来记录管理UI界面的状态变化(数据变化)。
  • 作用:
    在UI开发中,UI是应用程序运行的结果,开发者构建的UI界面,在应用程序运行时,状态是UI的参数。当参数改变时,UI作为结果,也将进行对应的改变。运行时的所有状态的变化,都会让UI进行重新渲染,在ArkUI中统称为状态管理机制。

一、UI与状态的映射关系

  • View(UI): UI渲染,指将build方法内的UI描述和@Builder装饰的方法内的UI描述映射到界面。
  • State: 状态,指驱动UI更新的数据。用户通过触发组件的事件方法,改变状态数据。状态数据的改变,引起UI的重新渲染。

二、自定义组件中的变量

  • 状态变量: 被状态装饰器装饰的变量,状态变量值的改变会引起UI的渲染更新。
  • 常规变量: 没有被状态装饰器装饰的变量,通常应用于辅助计算。它的改变永远不会引起UI的刷新。
javascript 复制代码
@Component
struct MyComponent {
  @State count: number = 0; // 状态变量
  private increaseBy: number = 1; // 常规变量

  build() {
  }
}

三、状态变量的初始化

  • 数据源/同步源: 状态变量的原始来源,可以同步给不同的状态数据。通常意义为父组件传给子组件的数据。
  • 命名参数机制: 父组件通过指定参数传递给子组件的状态变量,为父子传递同步参数的主要手段。
  • 从父组件初始化: 父组件使用命名参数机制,将指定参数传递给子组件。子组件初始化的默认值在有父组件传值的情况下,会被覆盖。
  • 初始化子节点: 父组件中状态变量可以传递给子组件,初始化子组件对应的状态变量。
  • 本地初始化: 在变量声明的时候赋值,作为变量的默认值。
相关推荐
青椒大仙KI1121 分钟前
24/9/19 算法笔记 kaggle BankChurn数据分类
笔记·算法·分类
liangbm31 小时前
数学建模笔记——动态规划
笔记·python·算法·数学建模·动态规划·背包问题·优化问题
潮汐退涨月冷风霜1 小时前
机器学习之非监督学习(四)K-means 聚类算法
学习·算法·机器学习
GoppViper1 小时前
golang学习笔记29——golang 中如何将 GitHub 最新提交的版本设置为 v1.0.0
笔记·git·后端·学习·golang·github·源代码管理
羊小猪~~1 小时前
深度学习基础案例5--VGG16人脸识别(体验学习的痛苦与乐趣)
人工智能·python·深度学习·学习·算法·机器学习·cnn
Charles Ray2 小时前
C++学习笔记 —— 内存分配 new
c++·笔记·学习
重生之我在20年代敲代码2 小时前
strncpy函数的使用和模拟实现
c语言·开发语言·c++·经验分享·笔记
我要吐泡泡了哦3 小时前
GAMES104:15 游戏引擎的玩法系统基础-学习笔记
笔记·学习·游戏引擎
骑鱼过海的猫1233 小时前
【tomcat】tomcat学习笔记
笔记·学习·tomcat
贾saisai5 小时前
Xilinx系FPGA学习笔记(九)DDR3学习
笔记·学习·fpga开发