当前位置: 首页 > news >正文

深圳营销型网站建设+宝安西乡重庆最好的网站建设公司

深圳营销型网站建设+宝安西乡,重庆最好的网站建设公司,南安网络推广,网站系统建站前言 在前文的描述中#xff0c;我们构建的页面多为静态界面。如果希望构建一个动态的、有交互的界面#xff0c;就需要引入“状态”的概念。 假设我们要实现如下一个动态的交互界面#xff1a; 上面的示例中#xff0c;用户与应用程序的交互触发了文本状态变更#x…前言 在前文的描述中我们构建的页面多为静态界面。如果希望构建一个动态的、有交互的界面就需要引入“状态”的概念。 假设我们要实现如下一个动态的交互界面 上面的示例中用户与应用程序的交互触发了文本状态变更状态变更引起了UI渲染UI从“Hello World”变更为“Hello ArkUI”。 在声明式UI编程框架中UI是程序状态的运行结果用户构建了一个UI模型其中应用的运行时的状态是参数。当参数改变时UI作为返回结果也将进行对应的改变。这些运行时的状态变化所带来的UI的重新渲染在ArkUI中统称为状态管理机制。 自定义组件拥有变量变量必须被装饰器装饰才可以成为状态变量状态变量的改变会引起UI的渲染刷新。如果不使用状态变量UI只能在初始化时渲染后续将不会再刷新。 下图展示了State和ViewUI之间的关系。 View(UI)UI渲染一般指自定义组件的build方法和Builder装饰的方法内的UI描述。State状态一般指的是装饰器装饰的数据。用户通过触发组件的事件方法改变状态数据。状态数据的改变引起UI的重新渲染。 初识状态管理 认识状态管理需要先明白如下基本概念 状态变量被状态装饰器装饰的变量改变会引起UI的渲染更新。常规变量没有状态的变量通常应用于辅助计算。它的改变永远不会引起UI的刷新。数据源/同步源状态变量的原始来源可以同步给不同的状态数据。通常意义为父组件传给子组件的数据。命名参数机制父组件通过指定参数传递给子组件的状态变量为父子传递同步参数的主要手段。示例CompA: ({ aProp: this.aProp })。从父组件初始化父组件使用命名参数机制将指定参数传递给子组件。本地初始化的默认值在有父组件传值的情况下会被覆盖。示例 Component struct MyComponent {State count: number 0;private increaseBy: number 1;build() {} }Component struct Parent {build() {Column() {// 从父组件初始化覆盖本地定义的默认值MyComponent({ count: 1, increaseBy: 2 })}} }初始化子节点组件中状态变量可以传递给子组件初始化子组件对应的状态变量。示例同上。本地初始化变量声明的时候赋值作为初始化的默认值。示例State count: number 0。 装饰器总览 ArkUI提供了多种装饰器通过使用这些装饰器状态变量不仅可以观察在组件内的改变还可以在不同组件层级间传递比如父子组件、跨组件层级也可以观察全局范围内的变化。根据状态变量的影响范围将所有的装饰器可以大致分为 管理组件拥有状态的装饰器组件级别的状态管理可以观察组件内变化和不同组件层级的变化但需要唯一观察同一个组件树上即同一个页面内。管理应用拥有状态的装饰器应用级别的状态管理可以观察不同页面甚至不同UIAbility的状态变化是应用内全局的状态管理。 从数据的传递形式和同步类型层面看装饰器也可分为 只读的单向传递可变更的双向传递。 图示如下具体装饰器的介绍可详见管理组件拥有的状态和管理应用拥有的状态。开发者可以灵活地利用这些能力来实现数据和UI的联动。 上图中Components部分的装饰器为组件级别的状态管理Application部分为应用的状态管理。开发者可以通过StorageLink/LocalStorageLink和StorageProp/LocalStorageProp实现应用和组件状态的双向和单向同步。图中箭头方向为数据同步方向单箭头为单向同步双箭头为双向同步。 1:管理组件拥有的状态 管理组件拥有的状态即图中Components级别的状态管理 StateState装饰的变量拥有其所属组件的状态可以作为其子组件单向和双向同步的数据源。当其数值改变时会引起相关组件的渲染刷新。PropProp装饰的变量可以和父组件建立单向同步关系Prop装饰的变量是可变的但修改不会同步回父组件。LinkLink装饰的变量和父组件构建双向同步关系的状态变量父组件会接受来自Link装饰的变量的修改的同步父组件的更新也会同步给Link装饰的变量。Provide/ConsumeProvide/Consume装饰的变量用于跨组件层级多层组件同步状态变量可以不需要通过参数命名机制传递通过alias别名或者属性名绑定。ObservedObserved装饰class需要观察多层嵌套场景的class需要被Observed装饰。单独使用Observed没有任何作用需要和ObjectLink、Prop连用。ObjectLinkObjectLink装饰的变量接收Observed装饰的class的实例应用于观察多层嵌套场景和父组件的数据源构建双向同步。 注意⚠️仅Observed/ObjectLink可以观察嵌套场景其他的状态变量仅能观察第一层详情见各个装饰器章节的“观察变化和行为表现”小节。 2:管理应用拥有的状态 管理应用拥有的状态即图中Application级别的状态管理 AppStorage是应用程序中的一个特殊的单例LocalStorage对象是应用级的数据库和进程绑定通过StorageProp和StorageLink装饰器可以和组件联动。AppStorage是应用状态的“中枢”需要和组件UI交互的数据存入AppStorage比如持久化数据PersistentStorage和环境变量Environment。UI再通过AppStorage提供的装饰器或者API接口访问这些数据框架还提供了LocalStorageAppStorage是LocalStorage特殊的单例。LocalStorage是应用程序声明的应用状态的内存“数据库”通常用于页面级的状态共享通过LocalStorageProp和LocalStorageLink装饰器可以和UI联动。 3:其他状态管理功能 Watch用于监听状态变量的变化。$$运算符给内置组件提供TS变量的引用使得TS变量和内置组件的内部状态保持同步。 总结 运行时的状态变化所带来的UI的重新渲染在ArkUI中统称为状态管理机制。自定义组件拥有变量变量必须被装饰器装饰才可以成为状态变量状态变量的改变会引起UI的渲染刷新。如果不使用状态变量UI只能在初始化时渲染后续将不会再刷新 后续会持续更新状态管理相关的各个状态管理装饰器。
http://www.zqtcl.cn/news/994403/

相关文章:

  • 自己做的创意的网站什么是淘宝seo
  • 网站开发包含哪些网站设计实例
  • 网站建设 核算棋牌源码论坛
  • 杭州网站建设案例网页设计程序
  • 网站建设的相关问题湛江网站开发
  • 网站开发作业wordpress用户角色
  • 品牌网站制作建设微信小程序开发需要什么技术
  • 新网站注册国内食品行业网站开发
  • 太原微商网站建设网站里面的视频功能怎么做的
  • 绿色做环保网站的好处网易企业邮箱登录登录入口
  • 卯兔科技网站建设网站验收时项目建设总结报告
  • 触摸网站手机wordpress建立模板下载
  • 做暧在线观看网站网站建设与管理工资
  • 横岗网站建设无锡网站seo外包
  • 房管局 网站做房查学做网站推广要多久时间
  • 电脑网站开发者模式田园综合体建设网站
  • 南宁广告公司网站建设自适应网站建设模板
  • 做北京电梯招标的网站衡阳县专业做淘宝网站
  • 建设网站的语言wordpress主题自定义添加后台设置
  • 制造动漫网站开发目的四川酒店网站建设
  • 中国城市建设研究院深圳分院网站广西圣泰建设工程有限公司网站
  • 网站建设的方法有哪些内容wordpress展示插件
  • 北京手机网站制作公司wordpress 简易教程
  • 手机网站建站公司有哪些搜索引擎收录
  • 仿同程网 连锁酒店 网站模板学校网站建设用哪个系统
  • 教做甜品的网站删除wordpress主题字体载入
  • 做酒店网站所用到的算法wordpress侧栏导航
  • 做漫画的网站有哪些信息门户网站怎么做
  • 九江集团网站建设公司信誉好的广州做网站
  • 福州网站建设服务平台今天发生的重大新闻