未验证 提交 1656259f 编写于 作者: O openharmony_ci 提交者: Gitee

!23644 状态管理文档用例,大小驼峰方法整改挑单monthly

Merge pull request !23644 from 181******72/cherry-pick-1693531522
...@@ -142,14 +142,14 @@ AppStorage是单例,它的所有API都是静态的,使用方法类似于中L ...@@ -142,14 +142,14 @@ AppStorage是单例,它的所有API都是静态的,使用方法类似于中L
```ts ```ts
AppStorage.SetOrCreate('PropA', 47); AppStorage.setOrCreate('PropA', 47);
let storage: LocalStorage = new LocalStorage(); let storage: LocalStorage = new LocalStorage();
storage['PropA'] = 17; storage['PropA'] = 17;
let propA: number | undefined = AppStorage.Get('PropA') // propA in AppStorage == 47, propA in LocalStorage == 17 let propA: number | undefined = AppStorage.get('PropA') // propA in AppStorage == 47, propA in LocalStorage == 17
let link1: SubscribedAbstractProperty<number> = AppStorage.Link('PropA'); // link1.get() == 47 let link1: SubscribedAbstractProperty<number> = AppStorage.link('PropA'); // link1.get() == 47
let link2: SubscribedAbstractProperty<number> = AppStorage.Link('PropA'); // link2.get() == 47 let link2: SubscribedAbstractProperty<number> = AppStorage.link('PropA'); // link2.get() == 47
let prop: SubscribedAbstractProperty<number> = AppStorage.Prop('PropA'); // prop.get() = 47 let prop: SubscribedAbstractProperty<number> = AppStorage.prop('PropA'); // prop.get() = 47
link1.set(48); // two-way sync: link1.get() == link2.get() == prop.get() == 48 link1.set(48); // two-way sync: link1.get() == link2.get() == prop.get() == 48
prop.set(1); // one-way sync: prop.get()=1; but link1.get() == link2.get() == 48 prop.set(1); // one-way sync: prop.get()=1; but link1.get() == link2.get() == 48
...@@ -159,7 +159,7 @@ storage.get<number>('PropA') // == 17 ...@@ -159,7 +159,7 @@ storage.get<number>('PropA') // == 17
storage.set('PropA', 101); storage.set('PropA', 101);
storage.get<number>('PropA') // == 101 storage.get<number>('PropA') // == 101
AppStorage.Get<number>('PropA') // == 49 AppStorage.get<number>('PropA') // == 49
link1.get() // == 49 link1.get() // == 49
link2.get() // == 49 link2.get() // == 49
prop.get() // == 49 prop.get() // == 49
...@@ -172,7 +172,7 @@ prop.get() // == 49 ...@@ -172,7 +172,7 @@ prop.get() // == 49
```ts ```ts
AppStorage.SetOrCreate('PropA', 47); AppStorage.setOrCreate('PropA', 47);
let storage = new LocalStorage(); let storage = new LocalStorage();
storage['PropA'] = 48; storage['PropA'] = 48;
...@@ -460,9 +460,9 @@ export struct TapImage { ...@@ -460,9 +460,9 @@ export struct TapImage {
AppStorage与[PersistentStorage](arkts-persiststorage.md)以及[Environment](arkts-environment.md)配合使用时,需要注意以下几点: AppStorage与[PersistentStorage](arkts-persiststorage.md)以及[Environment](arkts-environment.md)配合使用时,需要注意以下几点:
- 在AppStorage中创建属性后,调用PersistentStorage.PersistProp()接口时,会使用在AppStorage中已经存在的值,并覆盖PersistentStorage中的同名属性,所以建议要使用相反的调用顺序,反例可见[在PersistentStorage之前访问AppStorage中的属性](arkts-persiststorage.md#在persistentstorage之前访问appstorage中的属性) - 在AppStorage中创建属性后,调用PersistentStorage.persistProp()接口时,会使用在AppStorage中已经存在的值,并覆盖PersistentStorage中的同名属性,所以建议要使用相反的调用顺序,反例可见[在PersistentStorage之前访问AppStorage中的属性](arkts-persiststorage.md#在persistentstorage之前访问appstorage中的属性)
- 如果在AppStorage中已经创建属性后,再调用Environment.EnvProp()创建同名的属性,会调用失败。因为AppStorage已经有同名属性,Environment环境变量不会再写入AppStorage中,所以建议AppStorage中属性不要使用Environment预置环境变量名。 - 如果在AppStorage中已经创建属性后,再调用Environment.envProp()创建同名的属性,会调用失败。因为AppStorage已经有同名属性,Environment环境变量不会再写入AppStorage中,所以建议AppStorage中属性不要使用Environment预置环境变量名。
- 状态装饰器装饰的变量,改变会引起UI的渲染更新,如果改变的变量不是用于UI更新,只是用于消息传递,推荐使用 emitter方式。例子可见[以持久化方式订阅某个事件并接收事件回调](#以持久化方式订阅某个事件并接收事件回调) - 状态装饰器装饰的变量,改变会引起UI的渲染更新,如果改变的变量不是用于UI更新,只是用于消息传递,推荐使用 emitter方式。例子可见[以持久化方式订阅某个事件并接收事件回调](#以持久化方式订阅某个事件并接收事件回调)
<!--no_check--> <!--no_check-->
...@@ -12,11 +12,11 @@ Environment是ArkUI框架在应用程序启动时创建的单例对象。它为A ...@@ -12,11 +12,11 @@ Environment是ArkUI框架在应用程序启动时创建的单例对象。它为A
### 从UI中访问Environment参数 ### 从UI中访问Environment参数
- 使用Environment.EnvProp将设备运行的环境变量存入AppStorage中: - 使用Environment.envProp将设备运行的环境变量存入AppStorage中:
```ts ```ts
// 将设备的语言code存入AppStorage,默认值为en // 将设备的语言code存入AppStorage,默认值为en
Environment.EnvProp('languageCode', 'en'); Environment.envProp('languageCode', 'en');
``` ```
- 可以使用\@StorageProp链接到Component中。 - 可以使用\@StorageProp链接到Component中。
...@@ -34,8 +34,8 @@ Environment是ArkUI框架在应用程序启动时创建的单例对象。它为A ...@@ -34,8 +34,8 @@ Environment是ArkUI框架在应用程序启动时创建的单例对象。它为A
```ts ```ts
// 将设备languageCode存入AppStorage中 // 将设备languageCode存入AppStorage中
Environment.EnvProp('languageCode', 'en'); Environment.envProp('languageCode', 'en');
let enable: undefined = AppStorage.Get<undefined>('languageCode'); let enable: undefined = AppStorage.get<undefined>('languageCode');
@Entry @Entry
@Component @Component
...@@ -59,9 +59,9 @@ struct Index { ...@@ -59,9 +59,9 @@ struct Index {
```ts ```ts
// 使用Environment.EnvProp将设备运行languageCode存入AppStorage中; // 使用Environment.EnvProp将设备运行languageCode存入AppStorage中;
Environment.EnvProp('languageCode', 'en'); Environment.envProp('languageCode', 'en');
// 从AppStorage获取单向绑定的languageCode的变量 // 从AppStorage获取单向绑定的languageCode的变量
const lang: SubscribedAbstractProperty<string> = AppStorage.Prop('languageCode'); const lang: SubscribedAbstractProperty<string> = AppStorage.prop('languageCode');
if (lang.get() === 'zh') { if (lang.get() === 'zh') {
console.info('你好'); console.info('你好');
...@@ -89,7 +89,7 @@ export default class EntryAbility extends UIAbility { ...@@ -89,7 +89,7 @@ export default class EntryAbility extends UIAbility {
window.then(window => { window.then(window => {
let uicontext = window.getUIContext() let uicontext = window.getUIContext()
uicontext.runScopedTask(() => { uicontext.runScopedTask(() => {
Environment.EnvProp('languageCode', 'en'); Environment.envProp('languageCode', 'en');
}) })
}) })
} }
......
...@@ -34,13 +34,13 @@ PersistentStorage和UIContext相关联,需要在[UIContext](../reference/apis/ ...@@ -34,13 +34,13 @@ PersistentStorage和UIContext相关联,需要在[UIContext](../reference/apis/
1. 初始化PersistentStorage: 1. 初始化PersistentStorage:
```ts ```ts
PersistentStorage.PersistProp('aProp', 47); PersistentStorage.persistProp('aProp', 47);
``` ```
2. 在AppStorage获取对应属性: 2. 在AppStorage获取对应属性:
```ts ```ts
AppStorage.Get<number>('aProp'); // returns 47 AppStorage.get<number>('aProp'); // returns 47
``` ```
或在组件内部定义: 或在组件内部定义:
...@@ -54,7 +54,7 @@ PersistentStorage和UIContext相关联,需要在[UIContext](../reference/apis/ ...@@ -54,7 +54,7 @@ PersistentStorage和UIContext相关联,需要在[UIContext](../reference/apis/
```ts ```ts
PersistentStorage.PersistProp('aProp', 47); PersistentStorage.persistProp('aProp', 47);
@Entry @Entry
@Component @Component
...@@ -78,7 +78,7 @@ struct Index { ...@@ -78,7 +78,7 @@ struct Index {
``` ```
- 新应用安装后首次启动运行: - 新应用安装后首次启动运行:
1. 调用PersistProp初始化PersistentStorage,首先查询在PersistentStorage本地文件中是否存在“aProp”,查询结果为不存在,因为应用是第一次安装。 1. 调用persistProp初始化PersistentStorage,首先查询在PersistentStorage本地文件中是否存在“aProp”,查询结果为不存在,因为应用是第一次安装。
2. 接着查询属性“aProp”在AppStorage中是否存在,依旧不存在。 2. 接着查询属性“aProp”在AppStorage中是否存在,依旧不存在。
3. 在AppStorge中创建名为“aProp”的number类型属性,属性初始值是定义的默认值47。 3. 在AppStorge中创建名为“aProp”的number类型属性,属性初始值是定义的默认值47。
4. PersistentStorage将属性“aProp”和值47写入磁盘,AppStorage中“aProp”对应的值和其后续的更改将被持久化。 4. PersistentStorage将属性“aProp”和值47写入磁盘,AppStorage中“aProp”对应的值和其后续的更改将被持久化。
...@@ -95,21 +95,21 @@ struct Index { ...@@ -95,21 +95,21 @@ struct Index {
4. 因为“aProp”对应的属性已经被持久化,所以在AppStorage中“aProp”的改变会触发PersistentStorage,将新的改变写入本地磁盘。 4. 因为“aProp”对应的属性已经被持久化,所以在AppStorage中“aProp”的改变会触发PersistentStorage,将新的改变写入本地磁盘。
- 后续启动应用: - 后续启动应用:
1. 执行PersistentStorage.PersistProp('aProp', 47),在首先查询在PersistentStorage本地文件查询“aProp”属性,成功查询到。 1. 执行PersistentStorage.persistProp('aProp', 47),在首先查询在PersistentStorage本地文件查询“aProp”属性,成功查询到。
2. 将在PersistentStorage查询到的值写入AppStorage中。 2. 将在PersistentStorage查询到的值写入AppStorage中。
3. 在Index组件里,\@StorageLink绑定的“aProp”为PersistentStorage写入AppStorage中的值,即为上一次退出引用存入的值。 3. 在Index组件里,\@StorageLink绑定的“aProp”为PersistentStorage写入AppStorage中的值,即为上一次退出引用存入的值。
### 在PersistentStorage之前访问AppStorage中的属性 ### 在PersistentStorage之前访问AppStorage中的属性
该示例为反例。在调用PersistentStorage.PersistProp或者PersistProps之前使用接口访问AppStorage中的属性是错误的,因为这样的调用顺序会丢失上一次应用程序运行中的属性值: 该示例为反例。在调用PersistentStorage.persistProp或者persistProps之前使用接口访问AppStorage中的属性是错误的,因为这样的调用顺序会丢失上一次应用程序运行中的属性值:
```ts ```ts
let aProp = AppStorage.SetOrCreate('aProp', 47); let aProp = AppStorage.setOrCreate('aProp', 47);
PersistentStorage.PersistProp('aProp', 48); PersistentStorage.persistProp('aProp', 48);
``` ```
应用在非首次运行时,先执行AppStorage.SetOrCreate('aProp', 47):属性“aProp”在AppStorage中创建,其类型为number,其值设置为指定的默认值47。'aProp'是持久化的属性,所以会被写回PersistentStorage磁盘中,PersistentStorage存储的上次退出应用的值丢失。 应用在非首次运行时,先执行AppStorage.setOrCreate('aProp', 47):属性“aProp”在AppStorage中创建,其类型为number,其值设置为指定的默认值47。'aProp'是持久化的属性,所以会被写回PersistentStorage磁盘中,PersistentStorage存储的上次退出应用的值丢失。
PersistentStorage.PersistProp('aProp', 48):在PersistentStorage中查找到“aProp”,找到,值为47。 PersistentStorage.persistProp('aProp', 48):在PersistentStorage中查找到“aProp”,找到,值为47。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册