当前位置: 首页 > news >正文

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//显示持续时间  单位毫秒})})}}
}

这就是一个基本的信息储存了

http://www.dtcms.com/a/338971.html

相关文章:

  • 【git】 撤销revert一次commit中的某几个文件
  • HarmonyOS 实战:学会在鸿蒙中使用第三方 JavaScript 库(附完整 Demo)
  • CalMAN简介
  • ECharts漏斗图-漏斗图1,附视频讲解与代码下载
  • 程序员之电工基础-万用表、开关电源
  • Visual Studio中的常用调试功能(下)
  • peewee中db.create_tables(tables, safe=True),safe=True作用
  • 【Rust嵌入式键值对数据库redb】第一课 第一次写入
  • Matplotlib数据可视化实战:Matplotlib图表注释与美化入门
  • Kubernetes 的 YAML 配置文件-kind
  • 8.19作业
  • STM32 定时器(中断源)
  • Vibe 编码技巧与建议(Vibe Coding Tips and Tricks)
  • K近邻算法(knn)
  • SpringAIAlibaba之基础功能和基础类源码解析(2)
  • 添加右键菜单项以管理员权限打开 CMD
  • JUC之CompletableFuture【中】
  • [ORACLE数据库] ORACLE 的 PL/SQL 块
  • 开通会话内容存档获取聊天记录
  • 机器学习中的「损失函数」:模型优化的核心标尺
  • 源雀SCRM开源版企微客服功能重磅升级
  • Linux 正则表达式
  • 【新启航】航空飞机起落架深孔型腔的内轮廓检测方法探究 - 激光频率梳 3D 轮廓检测
  • JavaScript 性能优化:new Map vs Array.find() 查找速度深度对比
  • 机器翻译60天修炼专栏介绍和目录
  • C语言:字符函数与字符串函数(1)
  • 从 IP编码地址困局到网络优化:VLSM 与 CIDR 如何破解地址浪费与路由难题
  • 使用 Resilience4j 实现 Spring Boot 服务限流:轻量级容错的最佳实践
  • Java算法之排序
  • Bot 流量“假阳性”调优笔记