鸿蒙HarmonyOS应用开发-装饰器总结

一、概述

状态管理机制:声明式UI编程框架中,UI是程序状态的运行结果,用户构建了一个UI模型,其中应用的运行时的状态是参数。当参数改变时,UI作为返回结果,也将进行对应的改变。这些运行时的状态变化所带来的UI的重新渲染

常用的装饰器有@Prop、@Link、@Provide、@Observed 和 @ObjectLink 装饰器

二、各个状态变量的作用

1. @Prop 装饰器

@Prop 装饰器用于定义组件的属性,并确保组件属性的类型与数据源类型相匹配。通过 @Prop 装饰的变量会进行深拷贝,这意味着即使装饰的数据发生改变,也不会影响到父组件的数据。常见问题包括装饰状态变量未初始化错误。

2. @Link 装饰器

@Link 装饰器用于实现父子组件之间的双向数据同步。被 @Link 装饰的变量与父组件对应数据建立双向绑定,确保数据的同步更新。然而,@Link 装饰器不能在 @Entry 装饰的自定义组件中使用,并且禁止本地初始化。

3. @Provide 和 @Consume 装饰器

@Provide 和 @Consume 装饰器用于实现与后代组件之间的双向数据同步。它们可以跨组件传输数据,并确保数据的双向同步。必须注意的是,@Provide 和 @Consume 装饰的变量的类型必须相同。

4. @Observed 和 @ObjectLink 装饰器

@Observed 装饰器用于观察深层次变量的变化,而 @ObjectLink 装饰器用于嵌套类对象属性的变化。@Observed 装饰的类实例会被代理对象包装,从而实现属性的更新通知。然而,需要注意的是,使用 @Observed 装饰类会改变其原始的原型链,可能会带来一些问题。

三、状态变量引起父子组件刷新问题的总结

 

装饰器 使用场景 子组件数据 父组件的数据修改 子组件UI
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值