网站大量收购闲置独家精品文档,联系QQ:2885784924

《HarmonyOS应用开发基础》 课件知识点2-8-3 应用级变量的状态管理.pptx

《HarmonyOS应用开发基础》 课件知识点2-8-3 应用级变量的状态管理.pptx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

应用级变量的状态管理

AppStorageAppStorage是应用程序中的单例对象,由UI框架在应用程序启动时创建,在应用程序退出时销毁,为应用程序范围内的可变状态属性提供中央存储。

AppStorageAppStorage包含整个应用程序中需要访问的所有状态属性,只要应用程序保持运行,AppStorage就会保存所有属性及属性值,属性值可以通过唯一的键值进行访问。staticSetT(propName:string,newValue:T):boolean;通过AppStorage.Set保存键值对(也就是属性名与属性值)staticGetT(propName:string):T|undefined;通过AppStorage.Get通过键获取值(也就是通过属性名获取属性值)

@StorageLink与@StorageProp组件可以通过装饰器将应用程序状态数据与AppStorage进行同步。@StorageLink装饰器组件通过使用@StorageLink(key)装饰的状态变量,与AppStorage建立双向数据绑定,key为AppStorage中的属性键值。当创建包含@StorageLink的状态变量的组件时,该状态变量的值将使用AppStorage中的值进行初始化。在UI组件中对@StorageLink的状态变量所做的更改将同步到AppStorage,并从AppStorage同步到任何其他绑定实例中,如PersistentStorage或其他绑定的UI组件。@StorageProp装饰器组件通过使用@StorageProp(key)装饰的状态变量,与AppStorage建立单向数据绑定,key标识AppStorage中的属性键值。当创建包含@StorageProp的状态变量的组件时,该状态变量的值将使用AppStorage中的值进行初始化。AppStorage中属性值的更改会导致绑定该状态变量的UI组件进行状态更新。

@StorageLink与@StorageProp示例:@StorageLink与AppStorage双向数据绑定@Entry@Componentstruct?ComponentA?{??@StorageLink(count)?count:?number?=?0??build()?{????Column({?space:?20?})?{??????Text(@StorageLink?count=?+?this.count).fontSize(20)??????Text(AppStorage.Getnumber(count)=?+?AppStorage.Getnumber(count)).fontSize(20)??????Button(使用AppStorage.Set改变键count对应的值).onClick(()?=?{????????AppStorage.Setnumber(count,?AppStorage.Getnumber(count)?+?1)??????})??????Button(改变@StorageLink状态变量count的值).onClick(()?=?{????????this.count++??????})????}??}}

@StorageLink与@StorageProp示例:将上个示例中的@StorageLink改成@StorageProp,测试与AppStorage单向数据绑定@Entry@Componentstruct?ComponentA?{??@StorageProp(count)?count:?number?=?1??build()?{????Column({?space:?20?})?{??????Text(@StorageProp?count=?+?this.count).fontSize(20)??????Text(AppStorage.Getnumber(count)=?+?AppStorage.Getnumber(count)).fontSize(20)??????Button(使用AppStorage.Set改变键count对应的值).onClick(()?=?{????????AppStorage.Setnumber(count,?AppStorage.Getnumber(count)?+?1)??????})??????Button(改变@StorageProp状态变量count的值).onClick(()?=?{????????this.count++??????})????}??}}

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档