HarmonyOS 鸿蒙Next 关于数据持久化的咨询
HarmonyOS 鸿蒙Next 关于数据持久化的咨询
@StorageLink标记的持久化数据变量,是否会在修改变量值时自动将新数据保存到硬盘中?如何修改和保存持久化数据?
2 回复
class NewsColumn {
title: string = '';
id: number = 0;
constructor(title: string, id: number) {
this.title = title;
this.id = id;
}
}
let columnList: NewsColumn[] = [
new NewsColumn("推荐", 0),
new NewsColumn("要闻", 2331),
new NewsColumn("时政", 2257),
new NewsColumn("党建", 2258),
new NewsColumn("人事", 2177),
new NewsColumn("时评", 2259),
new NewsColumn("视频", 2586),
new NewsColumn("服务", 1020),
new NewsColumn("文化", 3119),
]
PersistentStorage.persistProp("newsColumn",columnList);
PersistentStorage.persistProp('testNum', 20);
@Entry
@Component
struct Storage {
@State message: string = 'Hello World';
@StorageLink('testNum') testNum: number = 10;
@StorageLink('newsColumn') columnList:NewsColumn[] = []
aboutToAppear(): void {
console.log('newsColumn ' + JSON.stringify(this.columnList));
}
build() {
Row() {
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
ForEach(this.columnList, (item: NewsColumn, index: number) => {
Column() {
Text(item.title)
.fontSize('15vp')
.opacity(0.8)
.fontWeight(400)
.fontColor(Color.Black)
}.onClick(() => {
})
})
Text(`${this.testNum}`)
.onClick(() => {
// 应用退出时会保存当前结果。重新启动后,会显示上一次的保存结果
this.testNum += 1;
this.columnList.splice(1,0,new NewsColumn('文化' + this.testNum,1))
})
}
}
.height('100%')
}
}
更多关于HarmonyOS 鸿蒙Next 关于数据持久化的咨询的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
HarmonyOS 鸿蒙Next在数据持久化方面提供了多种机制,以满足不同应用场景的需求。
首先,鸿蒙系统支持使用SQLite数据库进行数据持久化。SQLite是一种轻量级的嵌入式关系型数据库,适合在移动设备和嵌入式系统中使用。开发者可以通过SQL语句对数据库进行增删改查操作,实现数据的持久化存储。
其次,鸿蒙系统还提供了文件存储的方式。开发者可以将数据以文件的形式存储在设备的存储介质中,通过文件读写操作实现数据的持久化。这种方式适用于存储较大规模的数据,如图片、音频、视频等。
此外,鸿蒙系统还支持使用Preference进行数据持久化。Preference是一种轻量级的数据存储方式,适合存储简单的键值对数据。开发者可以通过Preference API对数据进行读取和写入操作,实现数据的持久化存储。
需要注意的是,在选择数据持久化方式时,开发者应根据具体的应用场景和需求进行选择。不同的存储方式在性能、数据安全性、易用性等方面存在差异,因此需要根据实际情况进行权衡。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。