如何利用在线工具创建适用于WordPress的发布会主题?
摘要:什么网站可以做拍a发布会,WordPress主题在线生成,珠宝网站设计文案,产品免费推广网站有哪些本文转载自《#2023 盲盒码 # OpenHarmony 应用 ArkUI 状态管理开发范例》,作者&
什么网站可以做拍a发布会,WordPress主题在线生成,珠宝网站设计文案,产品免费推广网站有哪些本文转载自《#2023 盲盒码 # OpenHarmony 应用 ArkUI 状态管理开发范例》#xff0c;作者#xff1a;zhushangyuan_ 本文根据橘子购物应用#xff0c;实现 ArkUI 中的状态管理。
在声明式 UI 编程框架中#xff0c;UI 是程序状态的运行结果#xff0c;用户构建了一个 UI …本文转载自《#2023 盲盒码 # OpenHarmony 应用 ArkUI 状态管理开发范例》作者zhushangyuan_ 本文根据橘子购物应用实现 ArkUI 中的状态管理。
在声明式 UI 编程框架中UI 是程序状态的运行结果用户构建了一个 UI 模型其中应用的运行时的状态是参数。当参数改变时UI 作为返回结果也将进行对应的改变。这些运行时的状态变化所带来的 UI 的重新渲染在 ArkUI 中统称为状态管理机制。
自定义组件拥有变量变量必须被装饰器装饰才可以成为状态变量状态变量的改变会引起 UI 的渲染刷新。如果不使用状态变量UI 只能在初始化时渲染后续将不会再刷新。 下图展示了 State 和 ViewUI之间的关系。 管理组件拥有的状态
State 装饰器组件内状态
State 装饰的变量或称为状态变量一旦变量拥有了状态属性就和自定义组件的渲染绑定起来。当状态改变时UI 会发生对应的渲染改变。
在状态变量相关装饰器中State 是最基础的使变量拥有状态属性的装饰器它也是大部分状态变量的数据源。
link 装饰器父子双向同步
子组件中被 Link 装饰的变量与其父组件中对应的数据源建立双向数据绑定。
Link 装饰的变量与其父组件中的数据源共享相同的值。
Componentexport struct DetailPage { State currentLocation: string }
在父组件 DetailPage 中声明当前定位 currentLocation 变量 Panel(this.isPanel) { Location({ isPanel: $isPanel, currentLocation: $currentLocation })}
将 currentLocation 变量传给子组件 Location Componentexport struct Location { Link currentLocation: string}
子组件用 Link 装饰的 currentLocation 接收。 Builder cityList(city: any) { if (this.currentLocation city.name) { List() { ForEach(city.city, twoCity { ListItem() { Column() { Text(${twoCity}) .width(100%) .height(30) .fontSize(14) .onClick(() { this.currentLocation city.name / twoCity }) } } }) } .width(100%) .divider({ strokeWidth: 2, color: $r(app.color.divider), startMargin: 0, endMargin: 20 }) } }
子组件中的 currentLocation 变量改变会同步父组件中的 currentLocation。
管理应用拥有的状态
AppStorage 是应用全局的 UI 状态存储是和应用的进程绑定的由 UI 框架在应用程序启动时创建为应用程序 UI 状态属性提供中央存储。
和 LocalStorage 不同的是LocalStorage 是页面级的通常应用于页面内的数据共享。而对于 AppStorage是应用级的全局状态共享。
