logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

ArkUI -- 管理数据对象的状态 (状态管理 V2)

本文介绍了HarmonyOS中@ObservedV2和@Trace装饰器的使用,它们解决了嵌套类属性变化的观测问题。关键点包括: @ObservedV2装饰类,@Trace装饰类属性,两者需配合使用 支持嵌套类、继承类场景,可观测Array/Date/Map/Set等内置类型变化 序列化时会为@Trace属性添加__ob_前缀,反序列化需使用class-transformer库保持观测能力 与V1

文章图片
#harmonyos#华为
ArkUI -- 渲染控制:if/else & ForEach & LazyForEach

若是将判断语句的状态变为 false,即会删除 if 语句下的组件,但由于是在动画中修改的状态,该组件会增加默认转场,会延迟组件的生命周期,即组件没有真正的删除,而是要等到转场动画完成后删除。这是因为,当删除了某个子组件后,位于该组件对应的数据项之后的各项数据,其 index 均应减 1,但实际上后续数据项对应的子组件仍然使用的是最初分配的 idnex,即组件生成函数。ForEach 的刷新,需要

文章图片
#华为
ArkUI -- 状态管理的更新机制

本文介绍了状态管理的核心原理,主要分为依赖收集和触发更新两大机制。在依赖收集阶段,系统会建立状态变量与组件间的绑定关系,通过Set集合保存组件标识。触发更新时,状态变量变化会标记相关组件为"脏",在下一个UI周期仅刷新这些组件,实现精准更新。文章对比了V1和V2版本的差异:V1同步执行@Watch回调并立即标脏组件,而V2采用异步方式处理@Computed和@Monitor回调,优化了多次状态变更

文章图片
#harmonyos#华为
到底了