鸿蒙学习笔记:生命周期和存储

生命周期
官方文档:页面和自定义组件生命周期
页面生命周期(只有被@Entry装饰的组件才可以调用页面的生命周期)
  • onPageShow:页面显示时执行
  • onPageHide:页面隐藏时执行
  • onBackPress:点击返回键执行
组件生命周期(被@Component装饰的组件便可以调用组件的生命周期)
  • aboutToAppear:实例创建后,在执行其build()函数之前执行
  • onDidBuild:组件build()函数执行完成之后回调该接口
  • aboutToDisappear:实例销毁前
  • 创建实例 → aboutToAppearbuild()onDidBuild → … → aboutToDisappear → 实例销毁
本地存储
官方文档:LocalStorage:页面级UI状态存储
官方文档中将管理应用存储分为了LocalStorage(页面级)、AppStorage(应用级)、PersistentStorage(持久化存储)三种类型
但个人使用起来关注LocalStorage(页面级)、AppStorage(应用级)两种类型几乎就能应对平常的开发。
LocalStorage页面级存储
  • 声明:new LocalStorage(object) ,创建一个LocalStorage,可以设置初始内容。

  • 绑定到页面:在 页面的组件 上使用 @Entry(storage)进行绑定。绑定后,该页面组件、以及子组件都可使用该存储中的数据了

  • 使用:

  • @LocalStorageProps:单向绑定,也就是页面改变了值的内容,不会影响到 localStore 中存储数据

  • @LocalStorageLink:双向绑定,也就是页面改变了值的内容,会一并影响到 localStore 中存储数据

  • 值得一提的是,鸿蒙中@Props 都是单向绑定,@Link 都是双向绑定。

实例
// 初始化
let para: Record<string, number> = { 'one': 1 };
let storage: LocalStorage = new LocalStorage(para);

// 添加创建值
storage.setOrCreate('two', 2);

// 绑定
@Entry(storage)
@Component
struct Index {

// 使用
@LocalStorageProps('one') childLinkNumber: number = 1;
@LocalStorageLink('two') childPropsNumber: number = 1;
}
AppStorage页面级存储
AppStorage和LocalStorage的区别,主要凸显在两个地方。
  • AppStorage是作用于全局的,整个应用周期, 无需声明,也无需进行@Entry(storage)绑定
  • AppStorage配合PersistentStorage可以实现持久化存储
实例
// 直接设置值
AppStorage.setOrCreate('one', 1);
AppStorage.setOrCreate('two', 2);

struct Index {

// 然后使用
@StorageProps('one') childLinkNumber: number = 1;
@StorageLink('two') childPropsNumber: number = 1;
}
讲诉更为详细存储知识的链接博客地址
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值