PersistentStorage 持久化存储
PersistentStorage
虽然名字和 AppStorage、LocalStorage 很像,但实际上他不负责存储相关的操作。它的作用其实是声明、或者标记。
通过 persistProp
声明一个键值对,然后 AppStorage
存储的该数据就变成了持久化存储了。
这样关闭应用,数据也能保留
注意
因为是声明,所以一次就好了,不需要多次声明。 建议在 app 启动后就声明
因为是
AppStorage
中该数据变成持久化存储,所以针对该数据的操作都通过AppStorage
来进行操作。声明一定要在
AppStorage
使用之前!重点,这是个坑。
语法举例
ts
//声明了属性aProp,并设置默认值。(该默认值,是未存储过的时候才使用的默认值)
PersistentStorage.persistProp('aProp', 47);
// 获取持久化值
AppStorage.get('aProp')
// 使用
AppStorage.setOrCreate('aProp',36)
取消持久化
ts
PersistentStorage.deleteProp("xxxx");
举例
ts
import {router} from "@kit.ArkUI"
PersistentStorage.persistProp('name', "张三");
PersistentStorage.persistProp('age', 36);
@Entry
@Component
struct Index {
@StorageLink("name") name:string = "";
@StorageLink("age") age:number = 23;
build() {
Column({space:20}){
Row(){
Text(this.age.toString()).fontSize(48).fontColor(Color.Green)
Text(this.name).fontSize(48).fontColor(Color.Green)
}
Row(){
Button("点击改变年龄").onClick(()=>{
this.age +=1;
})
Button("点击改变年龄").onClick(()=>{
this.name = "名字改变了";
})
}
Row(){
Button("点击跳转").onClick(()=>{
router.pushUrl({
url:'pages/Index2'
})
})
}
}
}
}
查看位置
- 查看缓存存到什么位置