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

从父组件初始化

禁止

本地初始化

必须本地初始化

观察能力

</

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/75648.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

索引下推(Index Condition Pushdown, ICP)

概念 索引下推是一种数据库查询优化技术&#xff0c;通过在存储引擎层面应用部分WHERE条件来减少不必要的数据读取。它特别适用于复合索引的情况&#xff0c;因为它可以在索引扫描阶段就排除不符合全部条件的数据行&#xff0c;而不是将所有可能匹配的记录加载到服务器层再进行…

idea在线离线安装插件教程

概述 对于小白来说&#xff0c;刚使用idea时&#xff0c;还有很多不懂的地方&#xff0c;这里&#xff0c;简单介绍下如何安装插件。让小白能容易上手全盘idea。 1、File -> Settings 2、找到 Plugins -> Marketplace 3、安装 3.1、在线安装 输入想搜索的内容&#x…

豪越赋能消防安全管控,解锁一体化内管“安全密码”

在消防安全保障体系中&#xff0c;内部管理的高效运作是迅速、有效应对火灾及各类灾害事故的重要基础。豪越科技凭借在消防领域的深耕细作与持续创新&#xff0c;深入剖析消防体系内部管理的痛点&#xff0c;以自主研发的消防一体化安全管控平台&#xff0c;为行业发展提供了创…

ES6学习03-字符串扩展(unicode、for...of、字符串模板)和新方法()

一、字符串扩展 1. eg: 2.for...of eg: 3. eg: 二。字符串新增方法 1. 2. 3. 4. 5.

探索Streamlit在测试领域的高效应用:文档读取与大模型用例生成的完美前奏

大模型用例生成前置工作之文档读取——构建你的自动化测试基础 在群友的极力推荐下&#xff0c;开始了streamlit的学习之旅。本文将介绍如何使用Streamlit开发一个多功能文档处理工具&#xff0c;支持读取、预览、格式转换和导出多种测试相关文档&#xff08;YAML、JSON、DOCX…

flutter 桌面应用之窗口自定义

在开发桌面软件的时候我们经常需要配置软件的窗口的大小以及位置 我们有两个框架选择:window_manager和bitsdojo_window 对比bitsdojo_window 特性bitsdojo_windowwindow_manager自定义标题栏✅ 支持❌ 不支持控制窗口行为&#xff08;大小/位置&#xff09;✅&#xff08;基本…

Cyber Weekly #51

赛博新闻 1、英伟达开源新模型&#xff0c;性能直逼DeepSeek-R1 本周&#xff0c;英伟达开源了基于Meta早期Llama-3.1-405B-Instruct模型开发的Llama-3.1-Nemotron-Ultra-253B-v1大语言模型&#xff0c;该模型拥有2530亿参数&#xff0c;在多项基准测试中展现出与6710亿参数的…

【JS】关于原型/原型链

本文会讲解什么是原型&#xff0c;什么是原型链&#xff0c;以及查找原型的方法&#xff0c;最后会实现一个函数&#xff1a;判断某对象是否有某属性。 定义 原型&#xff1a;函数都有prototype属性&#xff0c;称作原型/原型对象 原型可以放一些方法和属性&#xff0c;共享…

deskflow使用教程:一个可以让两台电脑鼠标键盘截图剪贴板共同使用的开源项目

首先去开源网站下载&#xff1a;Release v1.21.2 deskflow/deskflow 两台电脑都要下载这个文件 下载好后直接打开找到你想要的exe desflow.exe 然后你打开他&#xff0c;将两台电脑的TLS都关掉 下面步骤两台电脑都要完成&#xff1a; 电脑点开edit-》preferences 把这个取…

啥是Spring,有什么用,既然收费,如何免费创建SpringBoot项目,依赖下载不下来的解决方法,解决99%问题!

一、啥是Spring&#xff0c;为啥选择它 我们平常说的Spring指的是Spring全家桶&#xff0c;我们为什么要选择Spring&#xff0c;看看官方的话&#xff1a; 意思就是&#xff1a;用这个东西&#xff0c;又快又好又安全&#xff0c;反正就是好处全占了&#xff0c;所以我们选择它…

正向代理 vs 反向代理:核心区别与应用场景详解

目录 代理服务器是什么&#xff1f; 正向代理&#xff08;Forward Proxy&#xff09;详解 工作原理 典型应用场景 优缺点分析 反向代理&#xff08;Reverse Proxy&#xff09;详解 工作原理 典型应用场景 优缺点分析 正向代理与反向代理的核心区别 对比表格 架构差异…

Matlab学习笔记五十:循环语句和条件语句的用法

1.说明 循环语句&#xff1a;for…end&#xff0c;while…end 条件语句&#xff1a;if…end&#xff0c;switch…case…end 其中if语句语法还可以是&#xff1a;for…else…end&#xff0c;for…elseif…else…end 2.简单for程序实例 for x1:5 %循环遍历1~5 yx5 end [1…

容器初始化Spring Boot项目原理,即web项目(war)包涉及相关类对比详解

以下是关于 SpringBootServletInitializer、ServletContainerInitializer、SpringServletContainerInitializer、WebApplicationInitializer 和 ServletInitializer 的对比详解及总结表格&#xff1a; 1. 核心对比详解 (1) SpringBootServletInitializer 作用&#xff1a; S…

Linux 系统中打包与压缩

以下是 Linux 系统中 打包与压缩 的核心操作指南&#xff0c;涵盖常用命令、格式对比及典型场景应用&#xff1a; 一、核心概念 打包&#xff08;Archiving&#xff09; 将多个文件或目录合并为一个文件&#xff08;如 .tar&#xff09;&#xff0c;不改变文件体积。常用工具&a…

计算机组成原理(哈工大,会持续更新)

文章目录 一 计算机组成概述1.1计算机系统简介 一 计算机组成概述 1.1计算机系统简介 计算机软硬件的概念 计算机系统包含两个部分一个部分为硬件&#xff0c;另一个部分为软件 硬件&#xff1a;硬件包括我们能直观看到的东西&#xff0c;也就是我们计算机的实体&#xff0…

ngx_conf_handler

定义在 src\core\ngx_conf_file.c static ngx_int_t ngx_conf_handler(ngx_conf_t *cf, ngx_int_t last) {char *rv;void *conf, **confp;ngx_uint_t i, found;ngx_str_t *name;ngx_command_t *cmd;name cf->args->elts;found 0;for (…

Ubuntu系统美化

Ubuntu系统美化 一、Grub设置 1. 安装Grub Customizer【推荐】 Grub Customizer是一个用于自定义 GRUB 引导菜单的实用程序 sudo add-apt-repository ppa:danielrichter2007/grub-customizer && sudo apt update && sudo apt install -y grub-customizer2.…

零基础HTML·笔记(持续更新…)

基础认知 HTML标签的结构 <strong>文字变粗</strong> &#xff1c;开始标签&#xff1e;内容&#xff1c;结束标签&#xff1e; 结构说明&#xff1a; 标签由<、>、1、英文单词或字母组成。并且把标签中<>包括起来的英文单词或字母称为标签名。常…

nmcli创建wpa-psk2 wifi热点

1. 创建新的WiFi连接&#xff1a; sudo nmcli connection add type wifi ifname wlan0 con-name WiFi名称 autoconnect yes ssid WiFi名称 2. 配置接入点模式和IP共享&#xff1a; sudo nmcli connection modify WiFi名称 802-11-wireless.mode ap 802-11-wireless.band …

【消息队列kafka_中间件】一、快速入门分布式消息队列

在当今大数据和分布式系统盛行的时代&#xff0c;消息队列作为一种关键的中间件技术&#xff0c;发挥着举足轻重的作用。其中&#xff0c;Apache Kafka 以其卓越的性能、高可扩展性和强大的功能&#xff0c;成为众多企业构建分布式应用的首选消息队列解决方案。本篇文章将带你深…