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

ArkUI中的状态管理

一、MVVM

ArkUI提供了一系列装饰器实现ViewModel的能力,如@Prop、@Link、@Provide、LocalStorage等。当自定义组件内变量被装饰器装饰时变为状态变量,状态变量的改变会引起UI的渲染刷新。

在ArkUI的开发过程中,如果没有选择合适的装饰器或合理的控制状态更新范围,可能会导致以下问题:

1. 状态和UI的不一致,如同一状态的界面元素展示的UI不同,或UI界面展示的不是最新的状态。

2. 非必要的UI视图刷新,如只修改局部组件状态时导致组件所在页面的整体刷新。

当用户与界面产生交互行为时,状态的修改是通过事件驱动处理的。事件的处理可以在应用的任何地方,如果没有进行适当的逻辑处理管理也会导致代码冗余和不利于维护。

二、状态变量装饰器的使用

1、没有关联任何UI组件的状态变量和没有修改过的状态变量不应该定义为状态变量,直接使用一般变量即可,否则会影响性能。

2、状态变量要经过很多次计算的时候,用中间变量来存储它,减少不必要的行为而导致性能的消耗。   例如

@State message: string = '';appendMsg(newMsg: string) {this.message += newMsg;this.message += ';';this.message += '<br/>';}

改为

@State message: string = '';appendMsg(newMsg: string) {let message = this.message;message += newMsg;message += ';';message += '<br/>';this.message = message;}

三、组件中的状态共享

有两种

1、第一种就是组件内独享的状态,状态的定义和更新都是在组件内,组件销毁,状态也随之消失。组件内独享的状态使用@State装饰器。

2、第二种就是组件间需要共享状态。这里组件之间有3种关系,父子关系;同祖先组件关系;完全没有关系的两个组件;


http://www.mrgr.cn/news/44536.html

相关文章:

  • 【编程基础知识】Java静态导入的艺术与实践
  • 【前沿 热点 顶会】NIPS/NeurIPS 2024中与尖峰/脉冲神经网络(Spiking neural networks)有关的论文
  • 大模型新人必看经验,刷到少走数月弯路!
  • 括号匹配——(栈实现)
  • Java 中的 File 类及 InputStream 和 OutputStream 的用法总结
  • 医院综合服务系统小程序的设计
  • 简单理解动态规划
  • 基于ssm 和uniapp 开发的微信小程序的学生选课系统设计与实现
  • 代码随想录 103. 水流问题
  • 开发自定义starter
  • 【电力系统】基于MATLAB的储能辅助电力系统调峰的容量需求研究
  • Flutter平台嵌入器
  • 图解Linux文件属性与目录配置
  • Ubuntu查看磁盘空间使用情况
  • 中国书法-孙溟㠭浅析碑帖《九成宫醴泉铭》
  • 分层解耦-01.三层架构
  • Stable Diffusion绘画 | 插件-Deforum:商业LOGO广告视频
  • 图像转3D视差视频:DepthFlow、kling
  • 如何搭建基于大模型的智能知识库
  • 设计模式~~~