如何利用 ArkTS 进行模块化状态管理?

阅读 641
1 个回答

ArkTS 可通过模块化状态管理将状态集中存储在一个单独模块中,类似于 Redux 的全局状态管理模式。开发者可以通过导入模块,实现跨组件的状态共享。

以下代码展示了一个简单的状态管理模块:

// StateManager.ts
export class StateManager {
  private static instance: StateManager;
  public count: number = 0;

  private constructor() {}

  static getInstance() {
    if (!StateManager.instance) {
      StateManager.instance = new StateManager();
    }
    return StateManager.instance;
  }
}

// MainPage.ets
import { StateManager } from './StateManager';

@Entry
@Component
struct MainPage {
  private stateManager = StateManager.getInstance();

  build() {
    Column() {
      Text(`Count: ${this.stateManager.count}`)
        .fontSize(20);
      Button('Increment')
        .onClick(() => {
          this.stateManager.count++;
        });
    }.padding(20);
  }
}