react组件间通信

news/发布时间2024/5/20 17:54:38

1.父组件向子组件通信

import {  useState } from 'react';
function Button(props){return(<div>{props.name}</div>)
}
function App() {const msg=useState('神雕侠侣')return (<div className="App"><Button name={msg}></Button></div>);
}export default App;

2.子组件向父组件通信

import {  useState } from 'react';
function Button({getsonData}){const msg='这是子组件传过来的'return(<div>{getsonData && <button  onClick={()=>{getsonData(msg) }}>子传父</button>}</div>)
}
function App() {const [msg,setMsg]=useState('')const getsonData=(msg)=>{console.log('msg',msg)setMsg(msg)}return (<div className="App"><Button  getsonData={getsonData}> </Button><div>{msg}</div></div>);
}export default App;

3.context机制跨层传递数据

 

import { createContext, useContext } from 'react';
// 1.createContext创建一个上下文对象
const msgContext=createContext()
function A(){return(<div>这是A组件<B></B></div>)
}
function B(){const msg=useContext(msgContext)return(// 3.在底层组件通过useContext钩子函数使用数据<div>这是B组件{msg}</div>)
}
function App() {
const msg='this is msg'return (// 2.在顶层组件通过provider创建数据<div className="App" ><msgContext.Provider value={msg}>这是主页面<A></A></msgContext.Provider></div>);
}export default App;
import { createContext, useContext } from 'react';
// 1.createContext创建一个上下文对象
const msgContext=createContext()
function A(){return(<div>这是A组件<B></B></div>)
}
function B(){const msg=useContext(msgContext)return(// 3.在底层组件通过useContext钩子函数使用数据<div>这是B组件{msg}</div>)
}
function App() {
const msg='this is msg'return (// 2.在顶层组件通过provider创建数据<div className="App" ><msgContext.Provider value={msg}>这是主页面<A></A></msgContext.Provider></div>);
}export default App;

 

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

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

相关文章

19.8 Boost Asio 异或加密传输

异或加密是一种对称加密算法,通常用于加密二进制数据。异或操作的本质是对两个二进制数字进行比较,如果它们相同则返回0,如果不同则返回1。异或加密使用一把密钥将明文与密文进行异或运算,从而产生密文。同时,使用相同的密钥进行解密将返回原始的明文数据。在异或加密中,…

docker隔离实现

docker 容器之间的隔离实现 docker容器之间隔离:命名空间 控制组 网络虚拟化 联合文件系统命名空间pid namespace: 进程隔离 net namespace: 管理网络接口 ipc namespace: 管理进程通信资源 mnt namespace: 管理文件系统挂载 uts namespace: 隔离内核和版本标识(unix timeshar…

Go 面向接口编程

接口有什么用?就是存储未实现的方法,作为实现的此方法的结构体的实例的句柄。 type Sayer interface {say() }type Dog struct {} type Cat struct {}func (*Dog) say() {fmt.Println("Woew woew") }func (*Cat) say() {fmt.Println("Meow meow") }func …

多元高斯分布

https://www.bilibili.com/video/BV1zf4y1L7mQ/?spm_id_from=333.337.search-card.all.click&vd_source=5a8099d424866bf1cdbfa5a7afadeca6

读程序员的制胜技笔记08_死磕优化(上)

性能优化1. 过早的优化是万恶之源 1.1. 著名的计算机科学家高德纳(Donald Knuth)的一句名言 1.2. 原话是:“对于约97%的微小优化点,我们应该忽略它们:过早的优化是万恶之源。而对于剩下的关键的3%,我们则不能放弃优化的机会。” 2. 过早优化是提升自己的根源 2.1. 优化就是…

SPARQL查询:如何高效检索Web数据 (5)

本文内容预告 本文将带您深入了解如何使用SPARQL查询语言来检索RDF数据,掌握其基础语法,并通过实例学习如何执行查询。 什么是 SPARQL SPARQL,即SPARQL Protocol and RDF Query Language,是W3C推荐的RDF数据查询语言。作为语义网技术的核心之一,SPARQL为图数据库提供了强大…