Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
1656259f
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
1656259f
编写于
9月 01, 2023
作者:
O
openharmony_ci
提交者:
Gitee
9月 01, 2023
浏览文件
操作
浏览文件
下载
差异文件
!23644 状态管理文档用例,大小驼峰方法整改挑单monthly
Merge pull request !23644 from 181******72/cherry-pick-1693531522
上级
4643603a
0ff153a9
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
26 addition
and
26 deletion
+26
-26
zh-cn/application-dev/quick-start/arkts-appstorage.md
zh-cn/application-dev/quick-start/arkts-appstorage.md
+9
-9
zh-cn/application-dev/quick-start/arkts-environment.md
zh-cn/application-dev/quick-start/arkts-environment.md
+7
-7
zh-cn/application-dev/quick-start/arkts-persiststorage.md
zh-cn/application-dev/quick-start/arkts-persiststorage.md
+10
-10
未找到文件。
zh-cn/application-dev/quick-start/arkts-appstorage.md
浏览文件 @
1656259f
...
...
@@ -142,14 +142,14 @@ AppStorage是单例,它的所有API都是静态的,使用方法类似于中L
```
ts
AppStorage
.
S
etOrCreate
(
'
PropA
'
,
47
);
AppStorage
.
s
etOrCreate
(
'
PropA
'
,
47
);
let
storage
:
LocalStorage
=
new
LocalStorage
();
storage
[
'
PropA
'
]
=
17
;
let
propA
:
number
|
undefined
=
AppStorage
.
G
et
(
'
PropA
'
)
// propA in AppStorage == 47, propA in LocalStorage == 17
let
link1
:
SubscribedAbstractProperty
<
number
>
=
AppStorage
.
L
ink
(
'
PropA
'
);
// link1.get() == 47
let
link2
:
SubscribedAbstractProperty
<
number
>
=
AppStorage
.
L
ink
(
'
PropA
'
);
// link2.get() == 47
let
prop
:
SubscribedAbstractProperty
<
number
>
=
AppStorage
.
P
rop
(
'
PropA
'
);
// prop.get() = 47
let
propA
:
number
|
undefined
=
AppStorage
.
g
et
(
'
PropA
'
)
// propA in AppStorage == 47, propA in LocalStorage == 17
let
link1
:
SubscribedAbstractProperty
<
number
>
=
AppStorage
.
l
ink
(
'
PropA
'
);
// link1.get() == 47
let
link2
:
SubscribedAbstractProperty
<
number
>
=
AppStorage
.
l
ink
(
'
PropA
'
);
// link2.get() == 47
let
prop
:
SubscribedAbstractProperty
<
number
>
=
AppStorage
.
p
rop
(
'
PropA
'
);
// prop.get() = 47
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
...
...
@@ -159,7 +159,7 @@ storage.get<number>('PropA') // == 17
storage
.
set
(
'
PropA
'
,
101
);
storage
.
get
<
number
>
(
'
PropA
'
)
// == 101
AppStorage
.
G
et
<
number
>
(
'
PropA
'
)
// == 49
AppStorage
.
g
et
<
number
>
(
'
PropA
'
)
// == 49
link1
.
get
()
// == 49
link2
.
get
()
// == 49
prop
.
get
()
// == 49
...
...
@@ -172,7 +172,7 @@ prop.get() // == 49
```
ts
AppStorage
.
S
etOrCreate
(
'
PropA
'
,
47
);
AppStorage
.
s
etOrCreate
(
'
PropA
'
,
47
);
let
storage
=
new
LocalStorage
();
storage
[
'
PropA
'
]
=
48
;
...
...
@@ -460,9 +460,9 @@ export struct TapImage {
AppStorage与
[
PersistentStorage
](
arkts-persiststorage.md
)
以及
[
Environment
](
arkts-environment.md
)
配合使用时,需要注意以下几点:
-
在AppStorage中创建属性后,调用PersistentStorage.
P
ersistProp()接口时,会使用在AppStorage中已经存在的值,并覆盖PersistentStorage中的同名属性,所以建议要使用相反的调用顺序,反例可见
[
在PersistentStorage之前访问AppStorage中的属性
](
arkts-persiststorage.md#在persistentstorage之前访问appstorage中的属性
)
;
-
在AppStorage中创建属性后,调用PersistentStorage.
p
ersistProp()接口时,会使用在AppStorage中已经存在的值,并覆盖PersistentStorage中的同名属性,所以建议要使用相反的调用顺序,反例可见
[
在PersistentStorage之前访问AppStorage中的属性
](
arkts-persiststorage.md#在persistentstorage之前访问appstorage中的属性
)
;
-
如果在AppStorage中已经创建属性后,再调用Environment.
E
nvProp()创建同名的属性,会调用失败。因为AppStorage已经有同名属性,Environment环境变量不会再写入AppStorage中,所以建议AppStorage中属性不要使用Environment预置环境变量名。
-
如果在AppStorage中已经创建属性后,再调用Environment.
e
nvProp()创建同名的属性,会调用失败。因为AppStorage已经有同名属性,Environment环境变量不会再写入AppStorage中,所以建议AppStorage中属性不要使用Environment预置环境变量名。
-
状态装饰器装饰的变量,改变会引起UI的渲染更新,如果改变的变量不是用于UI更新,只是用于消息传递,推荐使用 emitter方式。例子可见
[
以持久化方式订阅某个事件并接收事件回调
](
#以持久化方式订阅某个事件并接收事件回调
)
。
<!--no_check-->
zh-cn/application-dev/quick-start/arkts-environment.md
浏览文件 @
1656259f
...
...
@@ -12,11 +12,11 @@ Environment是ArkUI框架在应用程序启动时创建的单例对象。它为A
### 从UI中访问Environment参数
-
使用Environment.
E
nvProp将设备运行的环境变量存入AppStorage中:
-
使用Environment.
e
nvProp将设备运行的环境变量存入AppStorage中:
```
ts
// 将设备的语言code存入AppStorage,默认值为en
Environment
.
E
nvProp
(
'
languageCode
'
,
'
en
'
);
Environment
.
e
nvProp
(
'
languageCode
'
,
'
en
'
);
```
-
可以使用
\@
StorageProp链接到Component中。
...
...
@@ -34,8 +34,8 @@ Environment是ArkUI框架在应用程序启动时创建的单例对象。它为A
```
ts
// 将设备languageCode存入AppStorage中
Environment
.
E
nvProp
(
'
languageCode
'
,
'
en
'
);
let
enable
:
undefined
=
AppStorage
.
G
et
<
undefined
>
(
'
languageCode
'
);
Environment
.
e
nvProp
(
'
languageCode
'
,
'
en
'
);
let
enable
:
undefined
=
AppStorage
.
g
et
<
undefined
>
(
'
languageCode
'
);
@
Entry
@
Component
...
...
@@ -59,9 +59,9 @@ struct Index {
```
ts
// 使用Environment.EnvProp将设备运行languageCode存入AppStorage中;
Environment
.
E
nvProp
(
'
languageCode
'
,
'
en
'
);
Environment
.
e
nvProp
(
'
languageCode
'
,
'
en
'
);
// 从AppStorage获取单向绑定的languageCode的变量
const
lang
:
SubscribedAbstractProperty
<
string
>
=
AppStorage
.
P
rop
(
'
languageCode
'
);
const
lang
:
SubscribedAbstractProperty
<
string
>
=
AppStorage
.
p
rop
(
'
languageCode
'
);
if
(
lang
.
get
()
===
'
zh
'
)
{
console
.
info
(
'
你好
'
);
...
...
@@ -89,7 +89,7 @@ export default class EntryAbility extends UIAbility {
window
.
then
(
window
=>
{
let
uicontext
=
window
.
getUIContext
()
uicontext
.
runScopedTask
(()
=>
{
Environment
.
E
nvProp
(
'
languageCode
'
,
'
en
'
);
Environment
.
e
nvProp
(
'
languageCode
'
,
'
en
'
);
})
})
}
...
...
zh-cn/application-dev/quick-start/arkts-persiststorage.md
浏览文件 @
1656259f
...
...
@@ -34,13 +34,13 @@ PersistentStorage和UIContext相关联,需要在[UIContext](../reference/apis/
1.
初始化PersistentStorage:
```
ts
PersistentStorage
.
P
ersistProp
(
'
aProp
'
,
47
);
PersistentStorage
.
p
ersistProp
(
'
aProp
'
,
47
);
```
2.
在AppStorage获取对应属性:
```
ts
AppStorage
.
G
et
<
number
>
(
'
aProp
'
);
// returns 47
AppStorage
.
g
et
<
number
>
(
'
aProp
'
);
// returns 47
```
或在组件内部定义:
...
...
@@ -54,7 +54,7 @@ PersistentStorage和UIContext相关联,需要在[UIContext](../reference/apis/
```
ts
PersistentStorage
.
P
ersistProp
(
'
aProp
'
,
47
);
PersistentStorage
.
p
ersistProp
(
'
aProp
'
,
47
);
@
Entry
@
Component
...
...
@@ -78,7 +78,7 @@ struct Index {
```
-
新应用安装后首次启动运行:
1.
调用
P
ersistProp初始化PersistentStorage,首先查询在PersistentStorage本地文件中是否存在“aProp”,查询结果为不存在,因为应用是第一次安装。
1.
调用
p
ersistProp初始化PersistentStorage,首先查询在PersistentStorage本地文件中是否存在“aProp”,查询结果为不存在,因为应用是第一次安装。
2.
接着查询属性“aProp”在AppStorage中是否存在,依旧不存在。
3.
在AppStorge中创建名为“aProp”的number类型属性,属性初始值是定义的默认值47。
4.
PersistentStorage将属性“aProp”和值47写入磁盘,AppStorage中“aProp”对应的值和其后续的更改将被持久化。
...
...
@@ -95,21 +95,21 @@ struct Index {
4.
因为“aProp”对应的属性已经被持久化,所以在AppStorage中“aProp”的改变会触发PersistentStorage,将新的改变写入本地磁盘。
-
后续启动应用:
1.
执行PersistentStorage.
P
ersistProp('aProp', 47),在首先查询在PersistentStorage本地文件查询“aProp”属性,成功查询到。
1.
执行PersistentStorage.
p
ersistProp('aProp', 47),在首先查询在PersistentStorage本地文件查询“aProp”属性,成功查询到。
2.
将在PersistentStorage查询到的值写入AppStorage中。
3.
在Index组件里,
\@
StorageLink绑定的“aProp”为PersistentStorage写入AppStorage中的值,即为上一次退出引用存入的值。
### 在PersistentStorage之前访问AppStorage中的属性
该示例为反例。在调用PersistentStorage.
PersistProp或者P
ersistProps之前使用接口访问AppStorage中的属性是错误的,因为这样的调用顺序会丢失上一次应用程序运行中的属性值:
该示例为反例。在调用PersistentStorage.
persistProp或者p
ersistProps之前使用接口访问AppStorage中的属性是错误的,因为这样的调用顺序会丢失上一次应用程序运行中的属性值:
```
ts
let
aProp
=
AppStorage
.
S
etOrCreate
(
'
aProp
'
,
47
);
PersistentStorage
.
P
ersistProp
(
'
aProp
'
,
48
);
let
aProp
=
AppStorage
.
s
etOrCreate
(
'
aProp
'
,
47
);
PersistentStorage
.
p
ersistProp
(
'
aProp
'
,
48
);
```
应用在非首次运行时,先执行AppStorage.
S
etOrCreate('aProp', 47):属性“aProp”在AppStorage中创建,其类型为number,其值设置为指定的默认值47。'aProp'是持久化的属性,所以会被写回PersistentStorage磁盘中,PersistentStorage存储的上次退出应用的值丢失。
应用在非首次运行时,先执行AppStorage.
s
etOrCreate('aProp', 47):属性“aProp”在AppStorage中创建,其类型为number,其值设置为指定的默认值47。'aProp'是持久化的属性,所以会被写回PersistentStorage磁盘中,PersistentStorage存储的上次退出应用的值丢失。
PersistentStorage.
P
ersistProp('aProp', 48):在PersistentStorage中查找到“aProp”,找到,值为47。
PersistentStorage.
p
ersistProp('aProp', 48):在PersistentStorage中查找到“aProp”,找到,值为47。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录