ArkTs之状态管理六 原创

无名的Pupil
发布于 2025-3-18 15:29
浏览
0收藏

在上一篇章中我们了解到了PersistentStorage的状态持久化内存状态,但是这个PersistentStorage有许多限制条件和存在一些不足,比如说如果我们写入大量的数据持久化,那么就会影响性能,因为PersistentStorage写入磁盘的操作是同步的,大量的数据本地化读写会同步在线程中执行,从而导致性能的下降。而且PersistentStorage只能在UI页面内使用否则将无法持久化数据。
为了弥补这些缺点和不足,就引出了本篇内容的主角"preferences"首选项
在首选项中提供Key-Value键值型数据的处理接口,实现对轻量级KV数据的查询、修改和持久化功能。其中,每个key的value的长度最大为8kb。
其他的我们不说我们直接上示例

import { preferences } from “@kit.ArkData”

@Entry
@Component
struct PreferencesPage {

defaultStore: string = “DefaultStore”
oneStore: string = “oneStore”
tKey: string = “tKey”
@State showTxt: string = “”
setToken(token: string, storeName: string = this.defaultStore) {
const store = preferences.getPreferencesSync(getContext(), { name: storeName })
store.putSync(this.tKey, token)
store.flushSync()
}

aboutToAppear(): void {
this.setToken(“你好”)
this.showTxt = preferences.getPreferencesSync(getContext(), { name: this.defaultStore }).getSync(this.tKey, “”) as string
}

build() {
Column() {
Text(this.showTxt)
.fontSize(24)
}
}
}

class PreferencesClass {
defaultStore: string = ‘xxxx’
firstStore: string = ‘xxx’
// 字段名称,一个字段配2个方法,读取和写入
tokenKey:string = ‘TOKEN_KEY’
// 向仓库中存储内容
setToken(content: Context, token: string, storeName: string = this.defaultStore){
const store = preferences.getPreferencesSync(content, {name: storeName})
store.putSync(this.defaultStore,token)
store.flush() //存储
}
// 读取仓库中的内容
getToken(content: Context,storeName: string = this.defaultStore){
const store = preferences.getPreferencesSync(content, {name: storeName})
return store.getSync(this.tokenKey, ‘’)
}
}
ArkTs之状态管理六-鸿蒙开发者社区
如上述代码演示中我定义的类,preferences使用起来很简单,大致分为三步
1.定义仓库
2.往仓库中存储,注意写入后要记得加上store.flush() //将缓存的Preferences实例中的数据存储到用户首选项的持久化文件中
3.读取仓库内容
还有注意的是它的同步方法和异步方法写的内容上有些区别,大家可以看看API它的同步和异步方法的区别

Harmony OS NEXT API12
本次就暂时介绍这么多
谢谢各位的观看,有错误不足的地方, 本人乐于接受各位的意见

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
标签
收藏
回复
举报


回复
    相关推荐