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

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等类型,支持箭头函数。

从父组件初始化

禁止

本地初始化

必须本地初始化

观察能力

</

相关文章:

  • 聊天室项目day4(redis实现验证码期限,实现redis连接池)
  • 2025年3月 Scratch图形化三级 真题解析 中国电子学会全国青少年软件编程等级考试
  • 【愚公系列】《Python网络爬虫从入门到精通》050-搭建 Scrapy 爬虫框架
  • oracle COUNT(1) 和 COUNT(*)
  • HTTP实现心跳模块
  • 吴恩达深度学习复盘(15)精度和召回率
  • 八大排序算法
  • JavaScript 定时器
  • Go语言--语法基础4--基本数据类型--整数类型
  • 深度学习(一)
  • 网页制作中的MVC和MVT
  • 【JDBC-54.1】MySQL JDBC连接字符串常用参数详解
  • 二.springBoot项目集成ElasticSearch及使用
  • PyRoboPlan 库,给 panda 机械臂微分 IK 上大分,关节限位、碰撞全不怕
  • 从 Vue 到 React:深入理解 useState 的异步更新与函数式写法
  • 理解分布式数据库基本概念:逻辑透明、分片透明、复制透明、位置透明
  • 2、JSX:魔法世界的通行证——用魔法符号编织动态界面
  • C++基础精讲-06
  • 青少年编程与数学 02-016 Python数据结构与算法 17课题、数论算法
  • goweb连接数据库操作
  • 怎么做网站的图片跳转/seo优化是怎么回事呢
  • 广州网站建设招标/上海站群优化公司
  • 58同城网站建设推广网站建设/舆情监控系统
  • wordpress首页调用文章多张图片/上海城市分站seo
  • 给公司做网站和公众号需要多少钱/女排联赛最新排行榜
  • 信誉好的武汉网站建设/网络seo关键词优化技巧