HarmonyOS鸿蒙Next中如何存储dataArray: T[]数组数据到本地

HarmonyOS鸿蒙Next中如何存储dataArray: T[]数组数据到本地 需要存储dataArray: T[]数组数据到本地,应该采用哪种存储方式比较合适
首页频道需要缓存到本地

3 回复

可以将数组数据先转换为字符串格式,使用JSON.stringify()方法

const dataStr = JSON.stringify(dataArray)

然后使用localStorage将字符串数据存储到本地

localStorage.setItem('dataArray', dataStr)

当App被杀掉进程后,App重新启动时,需要通过

const data = JSON.parse(localStorage.getItem('dataArray'))

重新读取LocalStorage中的数据

它永久存储,永不失效,除非手动删除,只要浏览器没有清除缓存,数据就会保留

更多关于HarmonyOS鸿蒙Next中如何存储dataArray: T[]数组数据到本地的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,存储dataArray: T[]数组数据到本地可以使用PreferencesDataAbilityPreferences适用于轻量级数据存储,而DataAbility适合更复杂的场景。

使用Preferences存储数据的步骤如下:

  1. 获取Preferences实例:

    const preferences = await data_preferences.getPreferences(this.context, 'myStore');
    
  2. 将数组转换为JSON字符串并存储:

    const jsonString = JSON.stringify(dataArray);
    await preferences.putString('dataArrayKey', jsonString);
    await preferences.flush();
    

使用DataAbility存储数据的步骤如下:

  1. 创建DataAbility并实现插入数据的方法:

    insert(uri: string, valueBucket: rdb.ValuesBucket, callback: AsyncCallback<number>): void {
      // Insert data into database
    }
    
  2. 将数组数据插入数据库:

    const valuesBucket = new rdb.ValuesBucket();
    valuesBucket.putString('dataArrayKey', JSON.stringify(dataArray));
    this.dataAbilityHelper.insert(uri, valuesBucket, (err, data) => {});
    

这两种方法都可以实现dataArray: T[]数组数据的本地存储。

在HarmonyOS鸿蒙Next中,可以使用DataAbilityHelperDataAbility来存储dataArray: T[]数组数据到本地。首先,创建一个DataAbility来处理数据的持久化操作,然后通过DataAbilityHelper调用insertbatchInsert方法将数组数据存入数据库。确保在config.json中正确配置DataAbility的路径和权限。

回到顶部