状态管理模块提供了应用程序的数据存储能力、持久化数据管理能力、UIAbility数据存储能力和应用程序需要的环境状态、工具。
说明
本模块首批接口从API version 12开始支持。
本文中T和S的含义如下:
类型 | 描述 |
---|---|
T | Class,number,boolean,string和这些类型的数组形式。 |
S | number,boolean,string。 |
导入模块
import { AppStorageV2,PersistenceV2,UIUtils} from '@kit.ArkUI';
connect12+
static connect(
type: TypeConstructorWithArgs,
keyOrDefaultCreator?: string | StorageDefaultCreator,
defaultCreator?: StorageDefaultCreator
): T | undefined;
将键值对数据储存在应用内存中。如果给定的key已经存在于[AppStorageV2]中,返回对应的值;否则,通过获取默认值的构造器构造默认值,并返回。
元服务API: 从API version 12开始,该接口支持在元服务中使用。
系统能力: SystemCapability.ArkUI.ArkUI.Full
参数:
参数名 | 类型 | 必填 | 参数描述 |
---|---|---|---|
type | TypeConstructorWithArgs | 是 | 指定的类型,若未指定key,则使用type的name作为key。 |
keyOrDefaultCreater | string | StorageDefaultCreator | 否 |
defaultCreator | StorageDefaultCreator | 否 | 获取默认值的构造器。 |
说明
1、若未指定key,使用第二个参数作为默认构造器;否则使用第三个参数作为默认构造器;
2、确保数据已经存储在AppStorageV2中,可省略默认构造器,获取存储的数据;否则必须指定默认构造器,不指定将导致应用异常;
3、同一个key,connect不同类型的数据会导致应用异常,应用需要确保类型匹配;
4、key建议使用有意义的值,长度不超过255,使用非法字符或空字符的行为是未定义的。
返回值:
类型 | 描述 |
---|---|
T | 创建或获取AppStorageV2数据成功时,返回数据;否则返回undefined。 |
示例:
import { AppStorageV2 } from '@kit.ArkUI';
@ObservedV2
class SampleClass {
@Trace p: number = 0;
}
// 将key为SampleClass、value为new SampleClass()对象的键值对存储到内存中,并赋值给as1
const as1: SampleClass | undefined = AppStorageV2.connect(SampleClass, () => new SampleClass());
// 将key为key_as2、value为new SampleClass()对象的键值对存储到内存中,并赋值给as2
const as2: SampleClass = AppStorageV2.connect(SampleClass, 'key_as2', () => new SampleClass())!;
// key为SampleClass已经在AppS