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

#HarmonyOS篇:管理组件拥有的状态状态管理V2

@ComponentV2装饰器

@ObservedV2装饰器 + @Trace装饰器 深度属性变化

现有状态管理V1版本无法实现对嵌套类对象属性变化的直接观测。

@Local装饰器

状态管理V1使用@State装饰器定义组件中的基础状态变量,该状态变量常用来作为组件内部状态,在组件内使用。但由于@State装饰器又能够从外部初始化,因此无法确保@State装饰变量的初始值一定为组件内部定义的值。

@Param

@Param不仅可以接受组件外部输入,还可以接受@Local的同步变化。在阅读本文档前。

@Once

@Provider + @Consumer

Monitor状态变量修改监听

  • @Monitor监听的变量需要被@Local、@Param、@Provider、@Consumer、@Computed装饰,未被状态变量装饰器装饰的变量在变化时无法被监听。

  • 未被@Trace装饰的属性无法被@Monitor监听到变化。

v1版本@Watch局限性,无法对对象、数组中某一个属性变化的监听,且无法捕获变化之前的值 。

@ComponentV2
export struct Dashboard {@Local title: string = '以前';@Monitor('title')onChangeTitle(monitor: IMonitor) {monitor.dirty.forEach((path: string) => {console.info('变化前---', monitor.value(path)?.before);console.info('变化后---', monitor.value(path)?.now)});}build() {Column() {Text(this.title)Button('改变标题').onClick((event: ClickEvent) => {this.title = '现在'})}}
}

@Computed计算属性

@Computed装饰的方法只有在初始化,或者其被计算的状态变量改变时,才会发生重新计算。

@Type

@ReusableV2

http://www.dtcms.com/a/594570.html

相关文章:

  • Boost库中boost::assign的使用
  • Swift-static和class
  • 个人网站设计规划书塘沽网站制作
  • 寻找富阳网站建设短视频矩阵营销
  • (已完结)仿神秘海域/美末环境交互的程序化动画学习
  • 网站后台怎么上传文章百度网站排名优化软件
  • 【菜狗学编程】opencv、numpy简单基础——20251011
  • 网站开发一个模板费用优惠券网站要怎么做的
  • 做cra需要关注的网站国际物流网站建设
  • Linux 文件
  • MCU 内存栈介绍和内存段
  • 如何配置Dev-C++的环境变量到系统路径?
  • 在网站和网页的区别哪里有培训网
  • 洪梅网站建设网站开发所需费用支出有哪些
  • 个人网站首页模板彩票网站开发演示
  • 企业网站未来发展趋势网站推广怎么推广
  • 芯伯乐3A降压稳压器XBLW LM2576/LM2596:高效、高可靠性开关电源解决方案
  • 30V N 沟道 MOSFET SP30N03BNK 规格解析与应用场景详解
  • JSON格式爬取淘宝/1688/京东商品详情API接口实战指南
  • 网站搭建推广优化知乎网页版
  • 02-Git Echarts
  • 网站 建设 申请报告广东专业网站优化制作公司
  • Kubernetes 第三章:深入掌握pod-基础
  • 介绍 一下 Pi3 (π³) 算法:排列等变视觉几何学习
  • 短网址生成站长工具网络推广和竞价怎么做
  • 个人主页空间申请新乡网站seo优化
  • vue弹出是否继续操作
  • 学校网站建设钉钉花桥网站建设
  • 网站微商城的建设网站关键词建设
  • 企业网站建设的原则做公众号一个月挣多少钱