HarmonyOS中AppStorageV2信息储存使用案例
appstoragev2的话是有三个方法,connect,remove,keys
connect方法,用于将键值对数据存储在应用内存中。如果给定的key已经存在于AppStorageV2中,返回对应的值;否则,通过获取默认值的构造器构造默认值,并返回
remove方法可以从AppStorageV2中删除指定的键值对数据
keys方法可以获取AppStorageV2中的所有key:
下面给出例子
比如我们想要在不同页面实现信息储存使用
user.ets (这里是储存信息的格式)注意这个user.ets是不用放到main_pages.json的
@ObservedV2
export class Person {@Trace name: string = '';constructor(name: string) { this.name = name; }
}
login.ets
——导入Person类
——onClick:
'USER_KEY'
是全局唯一的存储键名,用于在应用内跨组件访问同一数据
import { router, AppStorageV2 } from '@kit.ArkUI';
import { Person } from './user';@Entry
@Component
struct LoginPage {@State username: string = '';build() {Column() {TextInput({ placeholder: '请输入昵称' }).onChange((value: string) => {this.username = value;})Button("确认").onClick(() => {AppStorageV2.connect(Person, 'USER_KEY', () => new Person(this.username));router.pushUrl({ url: "pages/Index" });})}}
}
index.ets
import { router, AppStorageV2 ,Prompt} from '@kit.ArkUI';
import { Person } from './user';@Entry
@Component
struct Index {private user = AppStorageV2.connect(Person, 'USER_KEY')!;build() {Column() {// 添加空值保护Text(this.user?.name ?? 'Loading...').fontSize(20)Button("go") //按钮.fontSize(20).backgroundColor("#ff02d1ea") //背景颜色.fontColor(Color.Black) //文字颜色.width("60%").onClick(()=> {router.pushUrl({//跳转url: "pages/second"})Prompt.showToast({//吐司message: "ok", //吐司内容duration: 3000//显示持续时间 单位毫秒})})Button("logout").fontSize(20).backgroundColor("#ff02d1ea") //背景颜色.fontColor(Color.Black) //文字颜色.width("60%").onClick(()=> {AppStorageV2.remove("USER_KEY"); //用注册的键名来删router.pushUrl({//跳转url: "pages/login"})Prompt.showToast({//吐司message: "success logout", //吐司内容duration: 2000//显示持续时间 单位毫秒})})}}
}
这就是一个基本的信息储存了