鸿蒙next persistentV2使用记录
鸿蒙next的persistentV2用来实现数据持久化的操作,比起V1使用AppStorage+PersistStorage结合要简单了许多生成的文件可以通过device file manager查询。
·
使用案例
鸿蒙next的persistentV2用来实现数据持久化的操作,比起V1使用AppStorage+PersistStorage结合要简单了许多
export class NZUserHelper {
@Type(NZUser)
static currentUser:NZUser|null = null;
NZUserHelper.currentUser = PersistenceV2.connect(NZUser,()=> new NZUser())!;
NZUserHelper.currentUser.isLogin = false;
PersistenceV2.save(NZUser)
生成的文件可以通过device file manager查询


问题收集
被保存的对象,例如上面示例中的NZUser需要是可被系统序列化的对象,序列的要求,类型必须严格匹配(保存和读取失败并报错),不能为null(保存和读取失败并报错),不能为undefine(undefined不会报错但会丢失)
使用PersistenceV2.remove需要重新connect
数组相关的构造,数组的类型不能有构造函数
@ObservedV2
class NZArticleStorage {
articleId:number = 0;
@Trace readOffsetY:number = 0;
// constructor(oid:number,offsetY:number) {
// this.articleId = oid;
// this.readOffsetY = offsetY;
// }
}
@ObservedV2
class NZArticleStorageList {
@Type(NZArticleStorage)
@Trace list:NZArticleStorage[] = []
}
包含的数组,数组必须用@Type修饰
@Type(NZSNSVM)
@Trace snsBinding:Array<NZSNSVM> = [];
错误发现机制
PersistenceV2.notifyOnError((key: string, reason: string, msg: string) => {
console.error(`error key: ${key}, reason: ${reason}, message: ${msg}`);
});
通过这个方法可以获取对应持久化存储的报错,但不能具体到参数
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)