- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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++??????})????}??}}
您可能关注的文档
- 《HarmonyOS应用开发基础》 课件 知识点1-1-1 HarmonyOS简介.pptx
- 《HarmonyOS应用开发基础》 课件知识点1-1-2 开发前准备.pptx
- 《HarmonyOS应用开发基础》 课件知识点1-2-1 认识TypeScript.pptx
- 《HarmonyOS应用开发基础》 课件知识点1-2-2 TypeScript常用基础数据类型.pptx
- 《HarmonyOS应用开发基础》 课件知识点1-3-1 TypeScript函数.pptx
- 《HarmonyOS应用开发基础》 课件知识点1-3-2 TypeScript面向对象编程.pptx
- 《HarmonyOS应用开发基础》 课件知识点2-1 认识ArkTS工程.pptx
- 《HarmonyOS应用开发基础》 课件知识点2-2 认识ArkTS声明式开发.pptx
- 《HarmonyOS应用开发基础》 课件知识点2-3-1 Row与Column组件的使用.pptx
- 《HarmonyOS应用开发基础》 课件知识点2-3-2 基础组件1.pptx
最近下载
- 2024年广东省2024届高三高考模拟测试一模 英语试卷(含答案).pdf VIP
- 机械制图习题集(第2版)胡建生课后习题答案解析.pdf
- 2022年1月浙江省普通高学业水平考试政治试题.pdf
- 2024(部编版)历史九年级上册核心考点与重难点(详细版).docx
- 《吃火锅》课件-课件.ppt
- 2024-2025学年小学信息技术(信息科技)四年级全一册义务教育版(2024)教学设计合集.docx
- 纽崔莱向活力说早安(营养早餐).ppt
- 人教版五年级数学上册计算练习每日一练.pdf
- 19G518-3_门式刚架轻型房屋_钢结构_有吊车_.docx VIP
- 2023年济南小升初历年真题大全(附答案).docx
文档评论(0)