开天辟地 HarmonyOS(鸿蒙) - 状态管理: v2 UIUtils.makeObserved()

源码 https://github.com/webabcd/HarmonyDemo
作者 webabcd

开天辟地 HarmonyOS(鸿蒙) - 状态管理: v2 UIUtils.makeObserved()

示例如下:

pages\state\v2\MakeObservedDemo.ets

/*
 * v2 UIUtils.makeObserved() - v2 版状态管理
 *   UIUtils.makeObserved() - 用于将指定的不可观察数据变为可观察数据
 *
 * 注:
 * 1、使用 v2 版状态管理的组件要用 @ComponentV2 装饰
 * 2、无法用 Previewer 测试,需要用模拟器或真机
 */

import { TitleBar } from '../../TitleBar';
import { UIUtils } from '@kit.ArkUI';

class MyClass {
  id: number = 0;
  constructor(id: number) {
    this.id = id;
  }
}

@Entry
@ComponentV2
struct MakeObservedDemo {

  /*
   * UIUtils.makeObserved() - 用于将指定的不可观察数据变为可观察数据
   */
  myClass: MyClass = UIUtils.makeObserved(new MyClass(0));

  build() {
    Column({ space: 10 }) {
      TitleBar()

      // 通过 UIUtils.makeObserved() 可以观察指定的数据的变化,有变化时会更新相关 UI
      Button('click me').onClick(() => {
        this.myClass.id ++
      })
      Text(`${this.myClass.id}`)
    }
  }
}

源码 https://github.com/webabcd/HarmonyDemo
作者 webabcd

posted @ 2025-02-05 14:09  webabcd  阅读(84)  评论(0)    收藏  举报