首页 > 其他分享 >react组件间通信

react组件间通信

时间:2023-11-10 14:55:05浏览次数:35  
标签:function react const App 间通信 msg 组件 return

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;

 

标签:function,react,const,App,间通信,msg,组件,return
From: https://www.cnblogs.com/hs20011205/p/17824056.html

相关文章

  • 【openfeign】OpenFeign的扩展、日志、超时时间、拦截器、客户端组件、压缩
    Feign的日志配置有时候我们遇到Bug,比如接口调用失败、参数没收到等问题,或者想看看调用性能,就需要配置Feign的日志了,以此让Feign把请求信息输出来。全局配置定义一个配置类,指定日志级别:packagecom.morris.user.config;importfeign.Logger;importorg.springframework.context.a......
  • Android入门教程 | 四大组件之Service(前台服务,后台服务)
    Service是一种可在后台执行长时间运行操作而不提供界面的应用组件。服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。此外,组件可通过绑定到服务与之进行交互,甚至是执行进程间通信(IPC)。例如,服务可在后台处理网络事务、播放音乐,执行文件I/O或与内......
  • vue兄弟组件共享数据
    1、vue2.x中,兄弟组件共享数据的方式EventBus。一、A组件importeventBusfrom"@/components/eventBus";exportdefault{methods:{send(){eventBus.$emit('share',this.str)}}}</script>二、eventBus.jsimportVuefrom"vue";......
  • 打工笔记-------------------------.NET Reactor使用方法
    .NETReactor是一个用于保护.NET应用程序的代码混淆器和加密器。它可以防止应用程序被反编译和篡改使用步骤下载和安装.NETReactor:从DongleSoftware的官方网站下载.NETReactor5.9.8.0的安装程序,并按照提示进行安装。创建或导入项目:在.NETReactor中,创建一个新的......
  • Kubernetes常用命令及yml文件、集群网络 Kubernetes组件介绍及环境搭建
    Kubernetes常用命令及yml文件、集群网络Kubernetes组件介绍及环境搭建Kubernetes组件介绍及环境搭建一、kubernetes常用命令说明:因为k8s的命令都是通过kubectl组件接收的,这个组件只在master节点有,所以k8s的命令都是在master节点中执行kubectlgetnodes#查看当前集群中......
  • vuejs3.0 从入门到精通——动态组件
    动态组件一、App.vue<template><ul><!--使用ul标签替代了错误的url标签,用于展示列表--><liv-for='(item,index)intabList':key='index'@click="()=>{currentComponent.com=tabList[index].com}"><!--......
  • 界面控件DevExtreme图表和仪表(v23.1) - 新功能(Angular,React,Vue,jQuery)
    本文将为大家总结下DevExtreme在v23.1版本中发布的一些与图表和仪表盘相关的功能。DevExtreme拥有高性能的HTML5/JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NETCore,jQuery,Knockout等)构建交互式的Web应用程序。获取DevExtremev23.1正式版下载Dev......
  • 一对多数据关系处理利器:JVS子表格组件详解
    在数字化时代,表单已经成为企业、机构和个人收集、整理、分析数据的重要工具。然而,随着数据复杂性的增长,传统的单一表单往往难以满足需求。JVS低代码表单引擎中子表格允许在主表单中嵌套另一个子表数据,使得数据的收集和组织更加有序、高效。尤其在处理多对一或多对多的关系数据时,如......
  • 【开源三方库】Easyui:基于OpenAtom OpenHarmony ArkUI深度定制的组件框架
     万冬阳公司:中国科学院软件所小组:知识体系工作组 简介Easyui是一套基于ArkTS语言开发的轻量、可靠的移动端组件库,它是对OpenAtom OpenHarmony(以下简称“OpenHarmony”) ArkUI进行深度定制的组件框架。Easyui可扩展性较强,可以基于源码进行二次开发,修改原有组件以及新增......
  • Ansible自动化部署工具-组件及语法介绍
    大家好,我是蓝胖子,我认为自动化运维要做的事情就是把运维过程中的某些步骤流程化,代码化,这样在以后执行类似的操作的时候就可以解放双手了,让程序自动完成。避免出错,Ansible就是这方面非常好用的工具。它能将我们的安装软件,部署等过程进行代码编排,程序化我们的部署步骤。今天,我们就......