react 组件通信 —— 父子传值 【 函数式/类式 】

news/2024/9/17 18:57:07/ 标签: 前端, javascript, html
htmledit_views">

1、函数式组件通信

父子间通信 —— 父传子

 父组件

html" title=javascript>javascript">export default function father() {return (<div style={{width:'400px',height:'200px',background:'pink',marginLeft:'500px'}}>我是父组件<hr /><Son name={"韩小刀"}/></div>)
}

子组件

html" title=javascript>javascript">export default function son(props) {return (<div style={{width:'200px',height:'100px',background:'lightgreen'}}>我是子组件<hr />我接受到的父组件的值是:{props.name}</div>)
}

如下图所示:

 父子间通信 —— 子传父

父组件

html" title=javascript>javascript">export default function father() {// 父组件的数据const [data,setData] = useState('')// 父组件传给子组件的方法const onMessageChange = (message) => {setData(message)}return (<div style={{width:'400px',height:'200px',background:'pink',marginLeft:'500px'}}>我是父组件<div>接收子组件的数据:{data}</div><hr /><B sendMessageData={onMessageChange}/></div>)
}

 子组件

html" title=javascript>javascript">export default function son({sendMessageData}) {//子组件操作 给父组件传数据const handleData=()=>{sendMessageData('韩小刀')}return (<div style={{ width: "200px", height: "100px", background: "lightgreen" }}>我是子组件<hr /><button onClick={handleData} >点我给父组件传数据</button></div>);
}

 如下图所示:

 2、类式组件通信

父子间通信 —— 父传子

 父组件

html" title=javascript>javascript">export default class Father extends Component {//父组件的状态数据state = {name:'韩小刀'}render() {return (<div style={{width:'400px',height:'200px',background:'pink',marginLeft:'500px'}}>我是父组件<hr /><Son changeDataMessage={this.state.name}/></div>)}
}

  子组件

html" title=javascript>javascript">export default class Son extends Component {render() {//接收到父组件的数据const {changeDataMessage} = this.propsreturn (<div style={{ width: "200px", height: "100px", background: "lightgreen" }}>我是子组件<hr />接收到的数据:{changeDataMessage}</div>);}
}

 如下图所示:

 父子间通信 —— 子传父

  父组件

html" title=javascript>javascript">
export default class Father extends Component {//state写法一// constructor(props) {//   super(props);//   // 初始化状态//   this.state = {//     childMessage: "",//   };// }//state写法二state = {name: "",};changeDataMessage = (message) => {this.setState({ name: message });};render() {return (<div style={{width: "400px",height: "200px",background: "pink",marginLeft: "500px",}}>我是父组件 接收到子数据:{this.state.name}<hr /><B changeDataMessage={this.changeDataMessage} /></div>);}
}

  子组件

html" title=javascript>javascript">export default class Son extends Component {handleMessageData = () => { this.props.changeDataMessage('韩小刀')  }render() {return (<div style={{ width: "200px", height: "100px", background: "lightgreen" }}>我是子组件<hr /><button onClick={this.handleMessageData}>点我给父组件传数据</button> </div>);}
}

 如下图所示:

 


http://www.ppmy.cn/news/1474539.html

相关文章

MybatisPlus 一些技巧

查询简化 SimpleQuery 有工具类 com.baomidou.mybatisplus.extension.toolkit.SimpleQuery 对 selectList 查询后的结果进行了封装&#xff0c;使其可以通过 Stream 流的方式进行处理&#xff0c;从而简化了 API 的调用。 方法 list() 支持对一个列表提取某个字段&#xff…

Hadoop简明教程

文章目录 关于HadoopHadoop拓扑结构Namenode 和 Datanode 基本管理启动Hadoop启动YARN验证Hadoop服务停止Hadoop停止HDFS Hadoop集群搭建步骤准备阶段Java环境配置Hadoop安装与配置HDFS格式化与启动服务测试集群安装额外组件监控与维护&#xff1a; 使用Docker搭建集群使用Hado…

如何确保 PostgreSQL 在高并发写操作场景下的数据完整性?

文章目录 一、理解数据完整性二、高并发写操作带来的挑战三、解决方案&#xff08;一&#xff09;使用合适的事务隔离级别&#xff08;二&#xff09;使用合适的锁机制&#xff08;三&#xff09;处理死锁&#xff08;四&#xff09;使用索引和约束&#xff08;五&#xff09;批…

如何在 Objective-C 中实现多态性,并且它与其他面向对象编程语言的多态性实现有何差异?

在Objective-C中&#xff0c;多态性可以通过使用父类的指针来调用子类的方法来实现。具体来说&#xff0c;可以定义一个父类的指针&#xff0c;然后将子类的实例赋值给这个指针。这样&#xff0c;即使使用父类的指针来调用方法&#xff0c;实际上会调用子类的方法。 需要注意的…

2024.7.11 刷题总结

2024.7.11 **每日一题** 2972.统计移除递增子数组的数目 Ⅱ&#xff0c;这道题和昨天的前置题目思路完全一样&#xff0c;只是数据范围变大了。我们还是先处理最大上升前缀&#xff0c;并且加上答案。然后从最后一个元素开始遍历&#xff0c;直到出现非下降元素就终止&#xff…

Elon Musk开源Grok

转载自&#xff1a;AILab基地 早在6天前&#xff0c;马斯克就发文称xAI将开源Grok 图片 13小时前&#xff0c;马斯克开源了旗下公司X的Grok训练模型&#xff0c;并喊话OpenAI&#xff0c;你名字里的Open到底在哪里 图片 下面是xai-org的GitHub开源地址[https://github.com/x…

羧基聚乙二醇生物素的制备方法;COOH-PEG-Biotin

羧基聚乙二醇生物素&#xff08;COOH-PEG-Biotin&#xff09;是一种常见的生物分子聚合物&#xff0c;具有多种应用&#xff0c;特别是在生物实验、药物研发和生物技术等领域。以下是对该化合物的详细解析&#xff1a; 一、基本信息 名称&#xff1a;羧基聚乙二醇生物素&#x…

钉钉扫码登录第三方

钉钉文档 实现登录第三方网站 - 钉钉开放平台 (dingtalk.com) html页面 将html放在 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>登录</title>// jquery<script src"http://code.jqu…

网络(一)——初始网络

文章目录 计算机网络的背景网络发展认识 "协议" 网络协议初识协议分层网络分层 网络传输基本流程数据包封装和分用网络中的地址管理认识IP地址认识MAC地址 计算机网络的背景 网络发展 独立模式:计算机之间相互独立 在最早的时候&#xff0c;计算机之间是相互独立的&…

EasyExcel文档链接与使用示例

文档链接 注解 https://blog.csdn.net/estelle_belle/article/details/134508223 官方文档地址 https://github.com/alibaba/easyexcel/tree/master?tabreadme-ov-file 使用示例 依赖版本 <dependency><groupId>com.alibaba</groupId><artifactId>…

【爬虫入门知识讲解:xpath】

3.3、xpath xpath在Python的爬虫学习中&#xff0c;起着举足轻重的地位&#xff0c;对比正则表达式 re两者可以完成同样的工作&#xff0c;实现的功能也差不多&#xff0c;但xpath明显比re具有优势&#xff0c;在网页分析上使re退居二线。 xpath 全称为XML Path Language 一种…

玄机——第五章 linux实战-黑链 wp

文章目录 一、前言二、概览简介 三、参考文章四、步骤&#xff08;解析&#xff09;准备步骤#1.0步骤#1.1找到黑链添加在哪个文件 flag 格式 flag{xxx.xxx} 步骤#1.2webshell的绝对路径 flag{xxxx/xxx/xxx/xxx/} 步骤#1.3黑客注入黑链文件的 md5 md5sum file flag{md5} 步骤#1.…

Mysql LIKE什么时候走索引,什么时候不走索引

在 MySQL 中&#xff0c;LIKE 查询是否走索引&#xff0c;主要取决于通配符的位置和使用的存储引擎。 使用索引的情况 前缀匹配&#xff1a; 当 LIKE 查询中的通配符出现在字符串的末尾时&#xff0c;查询可以利用索引。例如&#xff0c;LIKE abc% 。这种情况下&#xff0c;索…

如何使用Python正则表达式解析多行文本

使用 Python 的正则表达式来解析多行文本通常涉及到使用多行模式&#xff08;re.MULTILINE&#xff09;和 re.DOTALL 标志&#xff0c;以及适当的正则表达式模式来匹配你想要提取或处理的文本块。以下是一个简单的示例&#xff0c;展示了如何处理多行文本&#xff1a; 1、问题背…

基于EMQX+Flask+InfluxDB+Grafana打造多协议物联网云平台:MQTT/HTTP设备接入与数据可视化流程(附代码示例)

摘要: 本文深入浅出地介绍了物联网、云平台、MQTT、HTTP、数据可视化等核心概念&#xff0c;并结合 EMQX、Flask、InfluxDB、Grafana 等主流工具&#xff0c;手把手教你搭建一个支持多协议的物联网云平台。文章结构清晰&#xff0c;图文并茂&#xff0c;代码翔实易懂&#xff0…

MySQL 数据库的 DDL

备份 MySQL 数据库的 DDL&#xff08;数据定义语言&#xff09;语句包括导出数据库结构&#xff08;如表、视图、触发器、存储过程和函数等&#xff09;&#xff0c;但不包括实际数据。通常使用 mysqldump 工具进行此类操作。以下是具体的方法&#xff1a; 备份 DDL 1. 导出数…

免费的AI文生视频哪些比较靠谱?

目前市场上推出了很多文生图&#xff0c;图生视频等各类AI工具网站&#xff0c;但实际上效果如何呢&#xff1f; 可以说&#xff0c;进步很大。从无到有&#xff0c;从有到精&#xff0c;毕竟需要一个时间阶段的。 国内的文生视频大部分都直接需要付费&#xff0c;不付费的比…

近期几首小诗汇总-生活~卷

生活 为生活飘零&#xff0c;风雨都不阻 路见盲人艰&#xff0c;为她心点灯 贺中科大家长论坛成立十五周年 科学家园有喜贺 园外丑汉翘望中 曾一学子入我科 正育科二盼长大 憧憬也能入此家 与科学家论短长 园外翘首听高论 发现有隙入此坛 竟然也能注册成 入园浏览惶然立 此贴…

clean code-代码整洁之道 阅读笔记(第十六章)

第十六章 重构SerialDate 16.1 首先&#xff0c;让它能工作 利用SerialDateTests来完整的理解和重构SerialDate用Clover来检查单元测试覆盖了哪些代码&#xff0c;效果不行重新编写自己的单元测试经过简单的修改&#xff0c;让测试能够通过 16.2 让它做对 全过程&#xff1…

【Go系列】 array、slice 和 map

承上启下 我们上一篇文章中介绍了if和for&#xff0c;这不得练习下&#xff0c;让我们一起来实践一下如何使用 continue 语句来计算100以内的偶数之和。在我们编写代码的过程中&#xff0c;continue 语句将会帮助我们跳过某些不需要的迭代&#xff0c;比如在这个例子中&#xf…