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

鸿蒙组件数据传递:ui传递、@prop、@link

鸿蒙组件数据传递方式有很多种,下面详细罗列一下:

注意:
文章内名词解释:
正向:父变子也变 逆向:子变父也变

**第一种:直接传递

- 特点:1、任何数据类型都可以传递 2、不能响应式更新 (正向 逆向都不行) 3、适合纯ui渲染** 4、子组件需要初始化数据

@Entry
@Component
struct Demo04 {@State message: string = 'Hello World123'@State obj: Aa = {name: 'zhangsan'}build() {Row() {Column() {Text("基本数据类型")Son({ message: this.message })Divider().strokeWidth(2)Text("对象数据类型")Son({ obj:this.obj })Button('改变数据').onClick((event: ClickEvent) => {this.message = '666'})}.width('100%')}.height('100%')}
}@Component
struct Son {message: string = ''obj:Aa = {name:''}build() {Row() {Text(this.message)Text(this.obj.name)}}
}class Aa{name: string = ''
}

第二种:@prop传递

特点:1、只能传递基本数据类型 2、可以正向的响应式数据更新 3、适合父组件改变子组件数据,但是子组件无法改变父组件数据的需求 4、子组件不需要初始化数据

@Entry
@Component
struct Demo04 {@State message: string = 'Hello World123'@State obj: Aa = {name: 'zhangsan'}build() {Row() {Column() {Text(this.message)Button('改变数据').onClick((event: ClickEvent) => {this.message = '666'}).margin({bottom:20})Divider().strokeWidth(5)Text("基本数据类型")Son({ message: this.message })Divider().strokeWidth(2)Text("对象数据类型")// Son({ obj:this.obj })}.width('100%')}.height('100%')}
}@Component
struct Son {@Prop message:string// @Prop obj:Aabuild() {Row() {Text(this.message)// Text(this.obj.name)Button("逆向改变").onClick(() => {this.message = "子变父不变"// this.obj.name = "子变父不变"})}}
}class Aa{name: string = ''
}

第二种:@link传递

特点:1、任何数据类型都可以 2、可以正向和逆向的响应式数据更新 3、适合子父组件一起更新数据的需求 4、子组件不需要初始化数据

@Entry
@Component
struct Demo04 {@State message: string = 'Hello World123'@State obj: Aa = {name: 'zhangsan'}build() {Row() {Column() {Text(this.message)Text(this.obj.name)Button('改变数据').onClick((event: ClickEvent) => {this.message = '666'this.obj.name = "lisi123"}).margin({bottom:20})Divider().strokeWidth(5)Text("基本数据类型")Son({message:$message})Divider().strokeWidth(2)Text("对象数据类型")// Son({obj:$obj})}.width('100%')}.height('100%')}
}@Component
struct Son {@Link message:string// @Link obj:Aabuild() {Row() {Text(this.message)// Text(this.obj.name)Button("逆向改变").onClick(() => {this.message = "子变父不变"// this.obj.name = "子变父不变"})}}
}class Aa{name: string = ''
}

鸿蒙-传智播客-博学谷

相关文章:

鸿蒙组件数据传递:ui传递、@prop、@link

鸿蒙组件数据传递方式有很多种,下面详细罗列一下: 注意: 文章内名词解释: 正向:父变子也变 逆向:子变父也变 **第一种:直接传递 - 特点:1、任何数据类型都可以传递 2、不能响应式…...

ubuntu 开机自报IP地址(用于无屏幕小车-远程连接)

目录 1.环境安装2.代码3.打包成可执行文件4.开启开机自启 1.环境安装 sudo apt-get install espeak #先安装这个库 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyttsx32.90 #再安装pyttsx3 pyinstaller pip install -i https://pypi.tuna.tsinghua.edu.cn/si…...

Angular——:host 和::deep

在Angular中,:host和::ng-deep是用于在组件样式中选择和修改宿主元素和子组件的特殊选择器。 :host是一个CSS伪类选择器,用于选择当前组件的宿主元素。它常用于在组件样式中应用样式到组件外部的宿主元素上。例如: :host {background-color:…...

键盘字符(#键)显示错误

当屏幕上显示的键与键盘上按下的键不同时,尤其是 # 键。大多数情况下,此错误是由于 raspbian 和 NOOBS 软件的默认英国键盘配置所致。 解决方案: 要解决此问题,您需要将配置更改为您自己的键盘或语言的配置。这可以通过转到树莓派…...

geemap学习笔记037:分析地理空间数据--坐标格网和渔网

前言 坐标格网(Coordinate Grid)简称“坐标网”,是按一定纵横坐标间距,在地图上划分的格网,坐标网是任何地图上不可缺少的要素之一。下面将详细介绍一下坐标格网和渔网。 1 导入库并显示地图 import ee import geem…...

Bluetooth Mesh 入门学习干货,参考Nordic资料(更新中)

蓝牙网状网络(Bluetooth mesh)概念 概述 蓝牙Mesh Profile | Bluetooth Technology Website规范(Mesh v1.1 后改名Mesh ProtocolMesh Protocol | Bluetooth Technology WebsiteMesh Protocol)是由蓝牙技术联盟(Bluetooth SIG)开…...

磁盘管理 :逻辑卷、磁盘配额

一 LVM可操作的对象:①完成的磁盘 ②完整的分区 PV 物理卷 VG 卷组 LV 逻辑卷 二 LVM逻辑卷管理的命令 三 建立LVM逻辑卷管理 虚拟设置-->一致下一步就行-->确认 echo "- - -" > /sys/class/scsi_host/host0/scan;echo "- -…...

GitHub教程-自定义个人页制作

GitHub是全球最大的代码托管平台,除了存放代码,它还允许用户个性化定制自己的主页,展示个人特色、技能和项目。本教程旨在向GitHub用户展示如何制作个性化主页,同时,介绍了GitHub Actions的应用,可以自动化…...

Frappe Charts:数据可视化的强大工具

一、产品简介: 一个简单、零依赖、响应式的 开源SVG 图表库。这个图表库无论是数据更新还是屏幕大小变化,都能快速响应并更新图表。数据生成和悬停查看都有舒服的交互动效,体验感很好。不仅支持配置颜色,外观定制也很方便。还支持…...

【Vulnhub 靶场】【Hms?: 1】【简单】【20210728】

1、环境介绍 靶场介绍:https://www.vulnhub.com/entry/hms-1,728/ 靶场下载:https://download.vulnhub.com/hms/niveK.ova 靶场难度:简单 发布日期:2021年07月28日 文件大小:2.9 GB 靶场作者:niveK 靶场系…...

浅谈C4模型

C4模型(C4 Model)是一种用于描述软件系统架构的轻量级模型,其目标是通过简化、清晰和易于理解的方式来表达系统的不同层次的架构信息。C4代表了“上下文”(Context)、“容器”(Container)、“组…...

SeaTunnel流处理同步MySQL数据至ClickHouse

ClickHouse是一种OLAP类型的列式数据库管理系统,ClickHouse完美的实现了OLAP和列式数据库的优势,因此在大数据量的分析处理应用中ClickHouse表现很优秀。 SeaTunnel是一个分布式、高性能、易扩展、用于海量数据同步和转化的数据集成平台。用户只需要配置…...

Arduino stm32 USB CDC虚拟串口使用示例

Arduino stm32 USB CDC虚拟串口使用示例 📍相关篇《STM32F401RCT6基于Arduino框架点灯程序》🔖本开发环境基于VSCode PIO🌿验证芯片:STM32F401RC⌛USB CDC引脚: PA11、 PA12🔧platformio.ini配置信息&…...

Java开发框架和中间件面试题(4)

27.如何自定义Spring Boot Starter? 1.实现功能 2.添加Properties 3.添加AutoConfiguration 4.添加spring.factory 在META INF下创建spring.factory文件 6.install 28.为什么需要spring boot maven plugin? spring boot maven plugin 提供了一些像jar一样打包…...

【腾讯云中间件】2023年热门文章集锦

各位读者,大家好! 光阴似箭,日月如梭,仿佛冬奥会的盛况还在眼前,新的一年却即将到来。在过去的一年里,我们见证了腾讯云中间件在产品升级与创新方面的显著进步,包括消息队列TDMQ品牌全新升级和…...

SpringBoot 实现订单30分钟自动取消的策略

简介 在电商和其他涉及到在线支付的应用中,通常需要实现一个功能:如果用户在生成订单后的一定时间内未完成支付,系统将自动取消该订单。 本文将详细介绍基于Spring Boot框架实现订单30分钟内未支付自动取消的几种方案,并提供实例…...

Qt篇——QwtPainter::drawPie绘制扇形

QwtPainter::drawPie(QPainter *painter, const QRectF &rect, int startAngle, int angle); 一、参数含义: painter: 重绘函数中的painter对象 rect: 要绘制扇形的圆的外切矩形。 startAngle: 要绘制的扇形的起始角 …...

Mybatis Java API - SqlSession

正如前面提到的,​SqlSession​实例是MyBatis中最重要、最强大的类。它是您将找到执行语句、提交或回滚事务以及获取映射器实例的所有方法的地方。 SqlSession 类上有超过二十个方法,让我们将它们分成更易理解的组别。 Statement Execution Methods-语…...

java freemarker 动态生成excel文件

好久木有更新啦 抓住2023的小尾巴 浅浅更新一下吧~ 最近做了一个动态生成excel的功能,这里记录下部分功能,主要用到的是freemarker框架,spring就有带,我起的demo载入了一下freemarker的jar包 一、创建模板 首先可以创建一个e…...

第38节: Vue3 鼠标按钮修改器

在UniApp中使用Vue3框架时&#xff0c;你可以使用按键修饰符来更精确地处理键盘事件。以下是一个示例&#xff0c;演示了如何在UniApp中使用Vue3框架使用.left、.right和.middle按键修饰符&#xff1a; <template> <view> <input keydown"handleKeyDown&…...

redis cluster判断key属于那个分片。

一、判断阿里云 redis cluster&#xff0c;的key属于那个分片。 阿里云特有的命令info key 可以查看key属于那个slot&#xff0c;那个分片 命令行查看&#xff1a; xxxx:6379> info key xxxx_compressed_xxx slot:4941 node_index:9 xxxx:6379> cluster keyslot xxxx_…...

Centos7:Jenkins+gitlab+node项目启动(3)

Centos7&#xff1a;Jenkinsgitlabnode项目启动(1) Centos7&#xff1a;Jenkinsgitlabnode项目启动(1)-CSDN博客 Centos7&#xff1a;Jenkinsgitlabnode项目启动(2) Centos7&#xff1a;Jenkinsgitlabnode项目启动(2)-CSDN博客 Centos7&#xff1a;Jenkinsgitlabnode项目启…...

Linux安装GitLab教程

Linux安装GitLab教程 1、配置yum源 相当于新建一个文件&#xff0c;通过这个文件来安装gitlab vim /etc/yum.repos.d/gitlab-ce.repo 把这些配置粘进去 [gitlab-ce] nameGitlab CE Repository baseurlhttps://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/ gp…...

react 之 美团案例

1.案例展示 2.环境搭建 克隆项目到本地&#xff08;内置了基础静态组件和模版&#xff09; git clone http://git.itcast.cn/heimaqianduan/redux-meituan.git 安装所有依赖 npm i 启动mock服务&#xff08;内置了json-server&#xff09; npm run serve 启动前端服务 npm…...

C基础使用

return 0; 语句用于表示退出程序。 一个程序有且只能有一个main函数的存在 安装编译环境&#xff1a; 安装vim: ubuntu里vim编辑器使用方法_ubuntu vim-CSDN博客 编译与运行&#xff1a; gcc hello.c //编译源文件 ./a.out //运行…...

Linux网络编程——Socket编程步骤及常用API

Sockt服务器和客户端的开发步骤 TCP connect()最好建立在listen()后&#xff0c;一旦监听到就建立连接。 UDP 常用API 包含头文件 #include<sys/types.h> #include<sys/socket.h>创建套接字&#xff08;连接协议&#xff09; 作用 用于根据指定的地址族、数据…...

数据挖掘 K-Means聚类

未格式化之前的代码&#xff1a; import pandas as pd#数据处理 from matplotlib import pyplot as plt#绘图 from sklearn.preprocessing import MinMaxScaler#归一化 from sklearn.cluster import KMeans#聚类 import os#处理文件os.environ["OMP_NUM_THREADS"] …...

医疗卫生行业网络安全需求发展

文章目录 一、行业安全建设需求分析1、等级保护2.0合规建设云计算技术大数据技术物联网技术移动互联网技术2、加强医疗数据安全保护加密存储与传输数据加强数据备份与恢复注重数据脱敏与分级保护3、强化网络安全制度管理完善应急预案与响应机制加强网络安全人员管理二、行业新技…...

【Unity热更新】学会AssetsBundle打包、加载、卸载

本教程详细讲解什么是AssetBundle压缩包机制!然后构建 AssetBundle、加载 AssetBundle 以及卸载 AssetBundle 的简要教程。这一个流程就是热更新! AssetBundles 简介 1.什么是AssetBundles? AssetBundles是Unity中一种用于打包和存储资源(如模型、纹理、声音等)的文件格…...

智能优化算法应用:基于指数分布算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于指数分布算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于指数分布算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.指数分布算法4.实验参数设定5.算法结果6.…...

在线平面设计网站哪个好/制作网页教程

当系统初始化完毕后会进入homeactivity&#xff1a;具体代码流程&#xff1a;ActivityManagerService.java --public void systemReady(final Runnable goingCallback) {...mMainStack当系统初始化完毕后会进入homeactivity&#xff1a;具体代码流程&#xff1a;ActivityManage…...

wordpress多导航栏/广东近期新闻

MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)实践Mysql作为目前世界上使用最广泛的免费数据库&#xff0c;相信所有从事系统运维的工程师都一定接触过。但在实际的生产环境中&#xff0c;由单台Mysql作为独立的数据库是完全不能满足实际需求的&#xff0c;无论是在安全…...

租车网站 模板/软文媒体

1.主要的子类&#xff1a; 1&#xff09; FileInputStream把一个文件作为InputStream&#xff0c;实现对文件的读取操作    2&#xff09; ByteArrayInputStream&#xff1a;把内存中的一个缓冲区作为InputStream使用    3&#xff09; StringBufferInputStream&…...

b2b电子商务网站的主要类型有哪些/自助建站的优势

二分 比较好的二分题目&#xff0c;需要花点脑筋想到&#xff0c;另外写的细节也多 题意&#xff1a;比较好懂&#xff0c;a数组有n个元素&#xff0c;b数组有m个元素&#xff0c;a数组的元素分别和b数组的元素相乘得到新的元素&#xff0c;那么一共会得到n*m个元素&#xff0c…...

那些网站可以做行测题/百度关键词优化怎么做

今天交换机小编来给大家普及(指遍布、遍及於一般)些交换机的术语&#xff0c;这些术语会让您更好的去了解交换机&#xff0c;同时让您在选择的时候心里面有个参数。防火墙维修维保所谓防火墙指的是一个由软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网之间的边…...

站长seo综合查询/郑州纯手工seo

IaaS&#xff0c;PaaS&#xff0c;SaaS 的区别 阮一峰 2017-08-07 263标签&#xff1a; SaaS &#xff0c; PaaS &#xff0c; IAAS网络 &#xff0c; 云服务器越来越多的软件&#xff0c;开始采用云服务。 云服务只是一个统称&#xff0c;可以分成三大类。 IaaS&#xff1a;基…...