应用开发时如何全局保存变量,在ets文件中使用 - HarmonyOS 鸿蒙Next

发布于 1周前 作者 sinazl 来自 鸿蒙OS

应用开发时如何全局保存变量,在ets文件中使用 - HarmonyOS 鸿蒙Next

保存全局变量可以使用GlobalContext对象,例:保存本应用的文件路径到全局对象中:

GlobalContext.getContext().setObject(‘applicationPathDir’, applicationPathDir);<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

后面取用该路径:

let applicationPathDir: string = GlobalContext.getContext().getObject(‘applicationPathDir’) as string;<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>

其中GlobalContext对象的代码如下:

export class GlobalContext {

  private constructor() {

  }

  private static instance: GlobalContext;

  private _object = new Map<string, object>();

  public static getContext(): GlobalContext {

    if (!GlobalContext.instance) {

      GlobalContext.instance = new GlobalContext();

    }

    return GlobalContext.instance;

  }

  getObject(value: string): Object | undefined {

    return this._object.get(value);

  }

  setObject(key: string, objectClass: Object): void {

    this._object.set(key, objectClass)

  }

}<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>


更多关于应用开发时如何全局保存变量,在ets文件中使用 - HarmonyOS 鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复
和AppStorage有什么区别呢?

更多关于应用开发时如何全局保存变量,在ets文件中使用 - HarmonyOS 鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙)应用开发中,全局保存变量并在ETS(Extensible TypeScript)文件中使用,可以通过多种方式实现。推荐使用全局状态管理(如使用@appstorage装饰器管理持久化数据)或全局服务(通过@Service注解定义服务,并在需要的地方通过@Inject注入)。对于非持久化数据,也可以考虑使用单例模式或全局变量(在JS或TS中通过定义在顶层作用域的对象)。

在ETS中,可以通过模块导出的方式,将全局变量或服务的实例暴露给需要的组件。如果问题依旧没法解决请加我微信,我的微信是itying888。

更多关于应用开发时如何全局保存变量,在ets文件中使用 - HarmonyOS 鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


回到顶部