# 基本概念 在声明式UI编程范式中,UI是应用程序状态的函数,开发人员通过修改当前应用程序状态来更新相应的UI界面。 开发框架提供了多种应用程序状态管理的能力。 ![zh-cn_image_0000001214948035](figures/zh-cn_image_0000001214948035.png) ## 状态变量装饰器 - **\@State:**组件拥有的状态属性。每当**\@State**装饰的变量更改时,组件会重新渲染更新UI。 - **\@Link:**组件依赖于其父组件拥有的某些状态属性。每当任何一个组件中的数据更新时,另一个组件的状态都会更新,父子组件都会进行重新渲染。 - **\@Prop:**工作原理类似**\@Link**,只是子组件所做的更改不会同步到父组件上,属于单向传递。 ## 应用程序状态数据 **AppStorage**是整个UI中使用的应用程序状态的中心“数据库”,UI框架会针对应用程序创建单例**AppStorage**对象,并提供相应的装饰器和接口供应用程序使用。 - **\@StorageLink:\@StorageLink(name)**的工作原理类似于**\@Consume(name)**,不同的是,该给定名称的链接对象是从**AppStorage**中获得的,它在**UI组件**和**AppStorage**之间建立双向绑定同步数据。 - **\@StorageProp:\@StorageProp(name)**将UI组件属性与**AppStorage**进行单向同步。**AppStorage**中的值更改会更新组件中的属性,但UI组件无法更改**AppStorage**中的属性值。 - **AppStorage**还提供用于业务逻辑实现的API,用于添加、读取、修改和删除应用程序的状态属性,通过此API所做的更改会导致修改的状态数据同步到UI组件上进行UI更新。