赞
踩
1.HarmonyOS | 状态管理(一) | @State装饰器
2.HarmonyOS | 状态管理(二) | @Prop装饰器
3.HarmonyOS | 状态管理(三) | @Link装饰器
4.HarmonyOS | 状态管理(四) | @Provide和@Consume装饰器
5.HarmonyOS | 状态管理(五) | @Observed装饰器和@ObjectLink装饰器
6.HarmonyOS | 状态管理(六) | LocalStorage(页面级UI状态存储)
上一篇文章讲解了页面级状态存储,本篇文章我们来看看应用级状态存储。
AppStorage是应用全局的UI状态存储,是和应用的进程绑定的,由UI框架在应用程序启动时创建,为应用程序UI状态属性提供中央存储。
@StorageProp
:@StorageProp(key) 和AppStorage中key对应的属性建立单向数据同步
@StorageLink
:@StorageLink(key) 和AppStorage中key对应的属性建立双向数据同步
AppStorage.SetOrCreate('Prop',60) @Entry @Component struct StoragePropPage { @StorageProp('Prop') storagePropOne: number = 1; build() { Column({ space: 15 }) { // 点击后从60开始加1,只改变当前组件显示的storagePropOne,不会同步到AppStorage中 Button(`Parent from AppStorage ${this.storagePropOne}`).onClick(() => this.storagePropOne += 1) ChildStorageProp() } } } @Component struct ChildStorageProp { // @LocalStorageProp变量装饰器与LocalStorage中的'Prop'属性建立单向绑定 @StorageProp('Prop') storagePropTwo: number = 2; build(){ Column({ space: 15 }) { // 当StoragePropPage改变时,当前storagePropTwo不会改变,显示60 Text(`Parent from AppStorage ${this.storagePropTwo}`) } } }
AppStorage.SetOrCreate('PropA', 50)
@Entry
@Component
struct StorageLinkPage {
@StorageLink('PropA') storageLink:number = 1
build() {
Column({ space: 20 }) {
Text(`From AppStorage ${this.storageLink}`)
.onClick(() => this.storageLink += 1)
}
}
}
AppStorage 是应用全局的UI状态存储。
@StorageProp(key) 和AppStorage中key对应的属性建立单向数据同步。
@StorageLink(key) 和AppStorage中key对应的属性建立双向数据同步。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。