应用程序的数据存储

About 9 min

应用程序的数据存储

AppStorage是应用程序中的单例对象,由UI框架在应用程序启动时创建。它的目的是为可变应用程序状态属性提供中央存储。AppStorage包含整个应用程序中需要访问的所有状态属性。只要应用程序保持运行,AppStorage存储就会保留所有属性及其值,属性值可以通过唯一的键值进行访问。

UI组件可以通过装饰器将应用程序状态数据与AppStorage进行同步。应用业务逻辑的实现也可以通过接口访问AppStorage

AppStorage的选择状态属性可以与不同的数据源或数据接收器同步。这些数据源和接收器可以是设备上的本地或远程,并具有不同的功能,如数据持久性。这样的数据源和接收器可以独立于UI在业务逻辑中实现。

默认情况下,AppStorage中的属性是可变的,AppStorage还可使用不可变(只读)属性。

AppStorage接口说明

方法

参数说明

返回值

定义

Link

key: string

@Link

如果存在具有给定键的数据,则返回到此属性的双向数据绑定,该双向绑定意味着变量或者组件对数据的更改将同步到AppStorage,通过AppStorage对数据的修改将同步到变量或者组件。如果具有此键的属性不存在或属性为只读,则返回undefined

SetAndLink

key : String

defaultValue: T

@Link

与Link接口类似。如果当前的key在AppStorage有保存,则返回此key对应的value。如果此key未被创建,则创建一个对应default值的Link返回。

Prop

key: string

@Prop

如果存在具有给定键的属性,则返回到此属性的单向数据绑定。该单向绑定意味着只能通过AppStorage将属性的更改同步到变量或者组件。该方法返回的变量为不可变变量,适用于可变和不可变的状态属性,如果具有此键的属性不存在则返回undefined

说明:

prop方法对应的属性值类型为简单类型。

SetAndProp

key : string

defaultValue: S

@Prop

与Prop接口类似。如果当前的key在AppStorage有保存,则返回此key对应的value。如果此key未被创建,则创建一个对应default值的Prop返回。

Has

key: string

boolean

判断对应键值的属性是否存在

Keys

void

array<string>

返回包含所有键的字符串数组。

Get

string

T或undefined

通过此接口获取对应此key值的value

Set

string, newValue :T

void

对已保存的key值,替换其value值。

SetOrCreate

string, newValue :T

boolean

如果相同名字的属性存在:如果此属性可以被更改返回true,否则返回false

如果相同名字的属性不存在:创建第一个赋值为defaultValue的属性,不支持null和undefined

Delete

key : string

boolean

删除属性,如果存在返回true,不存在返回false

Clear

none

boolean

删除所有的属性,如果当前有状态变量依旧引用此属性,则返回false

IsMutable

key: string

返回此属性是否存在并且是否可以改变。

说明: 当前接口当前仅可以处理基础类型数据,对于修改object中某一个值尚未支持。

示例

let link1 = AppStorage.Link('PropA')
let link2 = AppStorage.Link('PropA')
let prop = AppStorage.Prop('PropA')

link1 = 47  // causes link1 == link2 == prop == 47
link2 = link1 + prop  // causes link1 == link2 == prop == 94
prop = 1  // error, prop is immutable
1
2
3
4
5
6
7