@ohos.arkui.stateManagement (状态管理ArkTS1.2)

状态管理模块提供了应用程序动态刷新、UI数据存储、使能数据观察等能力。

说明:

本模块首批接口从API version 20开始支持,后续版本的新增接口,采用上角标单独标记接口的起始版本。

本模块仅适用于ArkTS1.2。

导入模块

import { UIUtils } from '@ohos.arkui.stateManagement';

UIUtils

UIUtils是状态管理提供的工具,用于处理可观察数据。

系统能力: SystemCapability.ArkUI.ArkUI.Full

makeObserved

static makeObserved<T extends object>(source: T): T

将不可观察数据转化为可观察数据。支持built-in类型(Array、Map、Set、Date)以及interface字面量。

系统能力: SystemCapability.ArkUI.ArkUI.Full

参数:

参数名 类型 必填 说明
source T 数据源对象。

返回值:

类型 说明
T 可观察的数据对象。

示例:

import { Entry, Component, Column, Text, ClickEvent } from '@ohos.arkui.component';
import { State, UIUtils } from '@ohos.arkui.stateManagement';
interface Info {
  name: string,
  age: number
}
@Entry
@Component
struct Index {
  // 装饰字面量
  @State info: Info = UIUtils.makeObserved({ name: 'Jack', age: 25} as Info) as Info;
  build() {
    Column() {
      Text(`info.name: ${this.info.name}, info.age: ${this.info.age}`)
        .onClick((e: ClickEvent) => {
          this.info.name = 'Tom';
          this.info.age = 24;
        })
    }
  }
}