HarmonyOS-ArkUI V2装饰器: @Provider和@Consumer装饰器:跨组件层级双向同步
作用我们在之前学习的那些控件中,各有特点,也各有缺陷,至今没有痛痛快快的出现过真正能跨组件的双向绑定的装饰器。
比如
[*]@Local装饰器,不能跨组件
[*]@Param装饰器呢,能跨组件传递,但是仅仅就是下一层组件接收参数。另外,它是单向传递,不可被重新赋值。如果您非要改值则用@Once修饰,改了父组件也不会同步。非要达成双向传递的结果,那就搞个@Event写回调函数,让父组件实现,完成改值的能力。比较麻烦。
我们有时间必要一种能力是,对于组件而言。爷爷组件直接传给孙子组件,父组件不必要某状态变量。而且孙子组件如果改了值,或者爷爷组件改了值,双向同步给相互。从而是界面革新逻辑正常。
这个@Provider和@Consumer装饰器的共同使用,就是来完成这种结果的。
使用方式
先容
@Provider必要与@Consumer共同使用。两者通过一个key创建联结。此key体如今,这两个装饰器都接收一个叫aliasName的参数,用来指定其修饰的变量的别名。之后靠这个别名来寻找绑定关系。
@Provider属性装饰器
阐明
装饰器参数
aliasName?:string, 别名,缺省时默以为属性名,建议最好写这个参数
支持类型
自界说组件中成员变量。属性类型可以为number,string, boolean, class, Array, Date, Map, Set 等类型。支持装饰箭头函数。
从父组件初始化
禁止
本地初始化
必须本地初始化
观察能力
能力等同于@Trace。变革同步给对应的@Consumer
@Consumer属性装饰器
阐明
装饰器参数
aliasName?:string, 别名,缺省时默以为属性名,向上查找近来的@Provider,建议最好写这个参数
可装饰的变量
自界说组件中的成员变量。属性的类型可以是number,string,boolean,Data,Array,Map,Set等类型,支持箭头函数。
从父组件初始化
禁止
本地初始化
必须本地初始化
观察能力
</
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]