react 父子组件通信 基础

父传子

使用props

js 复制代码
import { useState } from 'react'

function Parent {
    const [message, setMessage] = useState('react')

    return (
        <>
            <SonA message={message} />
            <SonB message={message} />
        </>
    )
}

function SonA(props) {
    return <div>子组件A: {props.message}</div>
}

function SonB({ message }) {
    return <div>子组件B: {message}</div>
}

子传父

子组件调用父组件传递过来的函数,并且把想要传递的数据当成函数的实参传入即可

js 复制代码
function Parent() {
    const getSonMessage = (message) => {
        console.log(message)
    }

    return (
        <SonFun
            getSonMessage={getSonMessage}
        />
    )
}

function SonFun(props) {
    const { getSonMessage } = props

    const handleClick = () => {
        getSonMessage('new message')
    }

    return (
        <button onClick={handleClick}>点击传递数据</button>
    )
}

兄弟组件之间的通信

通过状态提升机制,利用共同的父组件实现兄弟组件通信

js 复制代码
import { useState } from 'react'

function Parent() {
    const [message, setMessage] = useState('')

    const getSonMessage = (message) => {
        setMessage(message)
    }

    return (
        <>
            <SonA message={message}></SonA>
            <SonB getSonBMessage={getSonMessage} />
        </>
    )
}

function SonB(props) {
    const { getSonBMessage } = props

    const handleClick = () => {
        getSonBMessage('message from B')
    }
    return (
        <button onClick={handleClick}>点击传递数据</button>
    )
}

function SonA(props) {
    const { message } = props
    return (
        <div>{message}</div>
    )
}
相关推荐
酒尘&1 小时前
JS数组不止Array!索引集合类全面解析
开发语言·前端·javascript·学习·js
学历真的很重要1 小时前
VsCode+Roo Code+Gemini 2.5 Pro+Gemini Balance AI辅助编程环境搭建(理论上通过多个Api Key负载均衡达到无限免费Gemini 2.5 Pro)
前端·人工智能·vscode·后端·语言模型·负载均衡·ai编程
用户47949283569152 小时前
"讲讲原型链" —— 面试官最爱问的 JavaScript 基础
前端·javascript·面试
用户47949283569152 小时前
2025 年 TC39 都在忙什么?Import Bytes、Iterator Chunking 来了
前端·javascript·面试
2401_860319523 小时前
在React Native鸿蒙跨平台开发中实现 二叉搜索树,如何实现一些基本的遍历方法,如中序遍历,中序遍历按顺序访问左子树、根节点、右子树
react native·react.js·harmonyos
大怪v3 小时前
【Virtual World 04】我们的目标,无限宇宙!!
前端·javascript·代码规范
狂炫冰美式4 小时前
不谈技术,搞点文化 🧀 —— 从复活一句明代残诗破局产品迭代
前端·人工智能·后端
xw54 小时前
npm几个实用命令
前端·npm
!win !5 小时前
npm几个实用命令
前端·npm
代码狂想家5 小时前
使用openEuler从零构建用户管理系统Web应用平台
前端