1# 应用级变量的状态管理(系统接口) 2<!--Kit: ArkUI--> 3<!--Subsystem: ArkUI--> 4<!--Owner: @zzq212050299--> 5<!--Designer: @s10021109--> 6<!--Tester: @TerryTsao--> 7<!--Adviser: @HelloCrease--> 8 9 10状态管理模块提供了应用程序的数据存储能力、持久化数据管理能力、UIAbility数据存储能力和应用程序需要的环境状态。 11 12 13>**说明:** 14> 15>本模块首批接口从API version 7开始支持,后续版本的新增接口,采用上角标单独标记接口的起始版本。 16> 17>当前页面仅包含本模块的系统接口,其他公开接口参见[应用级变量的状态管理](./ts-state-management.md)。 18 19## SubscribedAbstractProperty\<T\> 20 21**卡片能力:** 从API version 9开始,支持在ArkTS卡片中使用。 22 23**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 24 25**系统能力:** SystemCapability.ArkUI.ArkUI.Full 26 27### subscribers\_ 28 29protected subscribers_: Set\<number\>; 30 31订阅者集合。 32 33**系统能力:** SystemCapability.ArkUI.ArkUI.Full 34 35**返回值:** 36 37|类型 |说明 | 38|-----------|--------------| 39|Set\<number\> |返回Set集合。 | 40 41### id\_ 42 43private id_; 44 45私有成员变量id_。 46 47**系统能力:** SystemCapability.ArkUI.ArkUI.Full 48 49### info\_ 50 51private info\_\?; 52 53变量信息。 54 55**系统能力:** SystemCapability.ArkUI.ArkUI.Full 56 57### constructor 58 59constructor(subscribeMe?: IPropertySubscriber,info?: string,); 60 61构造函数。 62 63**系统能力:** SystemCapability.ArkUI.ArkUI.Full 64 65**参数:** 66 67|参数名 |类型 |必填 |说明 | 68|---------|-----------|------------|--------------| 69|subscribeMe |[IPropertySubscriber](#ipropertysubscriber) |否 |变量属性。 | 70|info |string |否 |变量信息。 | 71 72### id 73 74id(): number; 75 76获取id时调用。 77 78**系统能力:** SystemCapability.ArkUI.ArkUI.Full 79 80**返回值:** 81 82|类型 |说明 | 83|-----------|--------------| 84|number |返回id。 | 85 86### createTwoWaySync 87 88createTwoWaySync(subscribeMe?: IPropertySubscriber, info?: string): SyncedPropertyTwoWay\<T\>; 89 90创建双向同步时调用。 91 92**系统能力:** SystemCapability.ArkUI.ArkUI.Full 93 94**参数:** 95 96|参数名 |类型 |必填 |说明 | 97|---------|-----------|------------|--------------| 98|subscribeMe |[IPropertySubscriber](#ipropertysubscriber) |否 |变量属性。 | 99|info |string |否 |变量信息。 | 100 101**返回值:** 102 103|类型 |说明 | 104|-----------|--------------| 105|[SyncedPropertyTwoWay\<T\>](#syncedpropertytwowayt) |返回双向同步属性。 | 106 107### createOneWaySync 108 109createOneWaySync(subscribeMe?: IPropertySubscriber, info?: string): SyncedPropertyOneWay\<T\>; 110 111创建单向同步时调用。 112 113**系统能力:** SystemCapability.ArkUI.ArkUI.Full 114 115**参数:** 116 117|参数名 |类型 |必填 |说明 | 118|---------|-----------|------------|--------------| 119|subscribeMe |[IPropertySubscriber](#ipropertysubscriber) |否 |变量属性。 | 120|info |string |否 |变量信息。 | 121 122**返回值:** 123 124|类型 |说明 | 125|-----------|--------------| 126|[SyncedPropertyOneWay\<T\>](#syncedpropertytwowayt) |返回单向同步属性。 | 127 128### unlinkSuscriber 129 130unlinkSuscriber(subscriberId: number): void; 131 132变量解除订阅时调用。 133 134**系统能力:** SystemCapability.ArkUI.ArkUI.Full 135 136**参数:** 137 138|参数名 |类型 |必填 |说明 | 139|---------|-----------|------------|--------------| 140|subscriberId |number |是 |变量id。 | 141 142### notifyHasChanged 143 144protected notifyHasChanged(newValue: T): void; 145 146通知变化时调用。 147 148**系统能力:** SystemCapability.ArkUI.ArkUI.Full 149 150**参数:** 151 152|参数名 |类型 |必填 |说明 | 153|---------|-----------|------------|--------------| 154|newValue |T |是 |更改后的新值。 | 155 156### notifyPropertyRead 157 158protected notifyPropertyRead(): void; 159 160通知读取时调用。 161 162**系统能力:** SystemCapability.ArkUI.ArkUI.Full 163 164### numberOfSubscrbers 165 166numberOfSubscrbers(): number; 167 168获取订阅者数量时调用。 169 170**系统能力:** SystemCapability.ArkUI.ArkUI.Full 171 172**返回值:** 173 174|类型 |说明 | 175|-----------|--------------| 176|number |返回订阅者数量。 | 177 178## IPropertySubscriber 179 180**系统能力:** SystemCapability.ArkUI.ArkUI.Full 181 182### id 183 184id(): number; 185 186获取id时调用。 187 188**系统能力:** SystemCapability.ArkUI.ArkUI.Full 189 190**返回值:** 191 192|类型 |说明 | 193|-----------|--------------| 194|number |返回变量id。 | 195 196### aboutToBeDeleted 197 198aboutToBeDeleted(owningView?: IPropertySubscriber): void; 199 200销毁时调用。 201 202**系统能力:** SystemCapability.ArkUI.ArkUI.Full 203 204**参数:** 205 206|参数名 |类型 |必填 |说明 | 207|---------|-----------|------------|--------------| 208|owningView |[IPropertySubscriber](#ipropertysubscriber) |否 |所在自定义组件。 | 209 210## SyncedPropertyTwoWay\<T\> 211 212继承自[SubscribedAbstractProperty\<T\>](#subscribedabstractpropertyt)。用来定义变量状态的值。 213 214**系统能力:** SystemCapability.ArkUI.ArkUI.Full 215 216### source\_ 217 218private source_; 219 220双向同步属性的数据源。 221 222**系统能力:** SystemCapability.ArkUI.ArkUI.Full 223 224### constructor 225 226constructor(source: SubscribedAbstractProperty\<T\>, subscribeMe?: IPropertySubscriber, info?: string); 227 228构造函数参数。 229 230**系统能力:** SystemCapability.ArkUI.ArkUI.Full 231 232**参数:** 233 234|参数名 |类型 |必填 |说明 | 235|---------|-----------|------------|--------------| 236|source |[SubscribedAbstractProperty\<T\>](#subscribedabstractpropertyt) |是 |双向同步属性的数据源。 | 237|subscribeMe |[IPropertySubscriber](#ipropertysubscriber) |否 |订阅者。 | 238|info |string |否 |订阅者信息。 | 239 240### aboutToBeDeleted 241 242aboutToBeDeleted(unsubscribeMe?: IPropertySubscriber): void; 243 244销毁时调用。 245 246**系统能力:** SystemCapability.ArkUI.ArkUI.Full 247 248**参数:** 249 250|参数名 |类型 |必填 |说明 | 251|---------|-----------|------------|--------------| 252|unsubscribeMe |[IPropertySubscriber](#ipropertysubscriber) |否 |被取消的订阅者。 | 253 254### hasChanged 255 256hasChanged(newValue: T): void; 257 258变化时调用。 259 260**系统能力:** SystemCapability.ArkUI.ArkUI.Full 261 262**参数:** 263 264|参数名 |类型 |必填 |说明 | 265|---------|-----------|------------|--------------| 266|newValue |T |是 |T类型实例。 | 267 268### get 269 270get(): T; 271 272获取数据时调用。 273 274**系统能力:** SystemCapability.ArkUI.ArkUI.Full 275 276**返回值:** 277 278|类型 |说明 | 279|------|------------| 280|T |T类型实例。 | 281 282### set 283 284set(newValue: T): void; 285 286赋值时调用。 287 288**系统能力:** SystemCapability.ArkUI.ArkUI.Full 289 290**参数:** 291 292|参数名 |类型 |必填 |说明 | 293|---------|-----------|------------|--------------| 294|newValue |T |是 |T类型实例。 | 295 296## SyncedPropertyOneWay\<T\> 297 298继承自[SubscribedAbstractProperty\<T\>](#subscribedabstractpropertyt)。用来定义父组件的状态值。 299 300**系统能力:** SystemCapability.ArkUI.ArkUI.Full 301 302### wrappedValue\_ 303 304private wrappedValue_; 305 306单向绑定时的值。 307 308**系统能力:** SystemCapability.ArkUI.ArkUI.Full 309 310### source\_ 311 312private source_; 313 314双向同步属性的数据源。 315 316**系统能力:** SystemCapability.ArkUI.ArkUI.Full 317 318### constructor 319 320constructor(source: SubscribedAbstractProperty\<T\>, subscribeMe?: IPropertySubscriber, info?: string); 321 322构造函数参数。 323 324**系统能力:** SystemCapability.ArkUI.ArkUI.Full 325 326**参数:** 327 328|参数名 |类型 |必填 |说明 | 329|---------|-----------|------------|--------------| 330|source |[SubscribedAbstractProperty\<T\>](#subscribedabstractpropertyt) |是 |单向同步属性的数据源。 | 331|subscribeMe |[IPropertySubscriber](#ipropertysubscriber) |否 |订阅者。 | 332|info |string |否 |订阅者信息。 | 333 334### aboutToBeDeleted 335 336aboutToBeDeleted(unsubscribeMe?: IPropertySubscriber): void; 337 338销毁时调用。 339 340**系统能力:** SystemCapability.ArkUI.ArkUI.Full 341 342**参数:** 343 344|参数名 |类型 |必填 |说明 | 345|---------|-----------|------------|--------------| 346|unsubscribeMe |[IPropertySubscriber](#ipropertysubscriber) |否 |被取消的订阅者。 | 347 348### hasChanged 349 350hasChanged(newValue: T): void; 351 352变化时调用。 353 354**系统能力:** SystemCapability.ArkUI.ArkUI.Full 355 356**参数:** 357 358|参数名 |类型 |必填 |说明 | 359|---------|-----------|------------|--------------| 360|newValue |T |是 |T类型实例。 | 361 362### get 363 364get(): T; 365 366获取数据源时调用。 367 368**系统能力:** SystemCapability.ArkUI.ArkUI.Full 369 370**返回值:** 371 372|类型 |说明 | 373|------|------------| 374|T |T类型实例。 | 375 376### set 377 378set(newValue: T): void; 379 380赋值时调用。 381 382**系统能力:** SystemCapability.ArkUI.ArkUI.Full 383 384**参数:** 385 386|参数名 |类型 |必填 |说明 | 387|---------|-----------|------------|--------------| 388|newValue |T |是 |T类型实例。 | 389 390## ISinglePropertyChangeSubscriber\<T\> 391 392继承自[IPropertySubscriber](#ipropertysubscriber)。用来定义变量。 393 394**系统能力:** SystemCapability.ArkUI.ArkUI.Full 395 396### hasChanged 397 398hasChanged(newValue: T): void; 399 400变化时调用。 401 402**系统能力:** SystemCapability.ArkUI.ArkUI.Full 403 404**参数:** 405 406|参数名 |类型 |必填 |说明 | 407|---------|-----------|------------|--------------| 408|newValue |T |是 |T类型实例。 | 409 410## SubscribaleAbstract 411 412**系统能力:** SystemCapability.ArkUI.ArkUI.Full 413 414### owningProperties\_ 415 416private owningProperties_: Set\<number\>; 417 418返回所持有的属性。 419 420**系统能力:** SystemCapability.ArkUI.ArkUI.Full 421 422**返回值:** 423 424|类型 |说明 | 425|------|------------| 426|Set\<number\> |返回Set集合。 | 427 428### constructor 429 430constructor(); 431 432构造函数。 433 434**系统能力:** SystemCapability.ArkUI.ArkUI.Full 435 436### notifyPropertyHasChanged 437 438protected notifyPropertyHasChanged(propName: string, newValue: any): void; 439 440当通知属性更改时调用。 441 442**系统能力:** SystemCapability.ArkUI.ArkUI.Full 443 444**参数:** 445 446|参数名 |类型 |必填 |说明 | 447|---------|-----------|------------|--------------| 448|propName |string |是 |属性名称。 | 449|newValue |any |否 |更改的新值。 | 450 451### addOwningProperty 452 453public addOwningProperty(subscriber: IPropertySubscriber): void; 454 455添加持有的属性。 456 457**系统能力:** SystemCapability.ArkUI.ArkUI.Full 458 459**参数:** 460 461|参数名 |类型 |必填 |说明 | 462|---------|-----------|------------|--------------| 463|subscriber |[IPropertySubscriber](#ipropertysubscriber) |是 |订阅者。 | 464 465### removeOwningProperty 466 467public removeOwningProperty(property: IPropertySubscriber): void; 468 469删除已拥有的属性时调用。 470 471**系统能力:** SystemCapability.ArkUI.ArkUI.Full 472 473**参数:** 474 475|参数名 |类型 |必填 |说明 | 476|---------|-----------|------------|--------------| 477|property |[IPropertySubscriber](#ipropertysubscriber) |是 |要删除的属性。 | 478 479### removeOwningPropertyById 480 481public removeOwningPropertyById(subscriberId: number): void; 482 483使用id删除已拥有的属性时调用。 484 485**系统能力:** SystemCapability.ArkUI.ArkUI.Full 486 487**参数:** 488 489|参数名 |类型 |必填 |说明 | 490|---------|-----------|------------|--------------| 491|subscriberId |number |是 |要删除的属性id。 | 492 493## Environment 494 495**系统能力:** SystemCapability.ArkUI.ArkUI.Full 496 497### constructor 498 499constructor(); 500 501构造函数。 502 503**系统能力:** SystemCapability.ArkUI.ArkUI.Full 504 505## PersistentStorage 506 507**原子化服务API:** 从API version 11开始,该接口支持在原子化服务中使用。 508 509**系统能力:** SystemCapability.ArkUI.ArkUI.Full 510 511### constructor 512 513constructor(appStorage: AppStorage, storage: Storage); 514 515构造函数参数。 516 517**系统能力:** SystemCapability.ArkUI.ArkUI.Full 518 519**参数:** 520 521|参数名 |类型 |必填 |说明 | 522|---------|-----------|------------|--------------| 523|appStorage |AppStorage |是 |应用存储。 | 524|storage |Storage |是 |存储。 | 525 526## appStorage 527 528declare const appStorage: AppStorage; 529 530应用存储。 531 532**系统能力:** SystemCapability.ArkUI.ArkUI.Full 533 534|类型 |说明 | 535|----------|------------| 536|AppStorage |应用存储。 |