当前位置:首页 > React

react实现父子通信

2026-01-27 00:16:12React

父组件向子组件传递数据(Props)

父组件通过props将数据传递给子组件。子组件通过props接收父组件传递的数据。

父组件示例:

import ChildComponent from './ChildComponent';

function ParentComponent() {
  const message = "Hello from Parent";
  return <ChildComponent message={message} />;
}

子组件示例:

function ChildComponent(props) {
  return <div>{props.message}</div>;
}

子组件向父组件传递数据(回调函数)

父组件定义一个回调函数,通过props传递给子组件。子组件调用该回调函数将数据传回父组件。

父组件示例:

import ChildComponent from './ChildComponent';

function ParentComponent() {
  const handleData = (data) => {
    console.log("Data from child:", data);
  };
  return <ChildComponent onData={handleData} />;
}

子组件示例:

react实现父子通信

function ChildComponent(props) {
  const sendData = () => {
    props.onData("Data from Child");
  };
  return <button onClick={sendData}>Send Data</button>;
}

使用Context API跨层级通信

创建Context提供全局数据共享,适合跨多级组件通信。

创建Context:

import { createContext } from 'react';

const MyContext = createContext();

export default MyContext;

父组件提供数据:

react实现父子通信

import MyContext from './MyContext';
import ChildComponent from './ChildComponent';

function ParentComponent() {
  const value = "Shared Data";
  return (
    <MyContext.Provider value={value}>
      <ChildComponent />
    </MyContext.Provider>
  );
}

子组件消费数据:

import { useContext } from 'react';
import MyContext from './MyContext';

function ChildComponent() {
  const contextValue = useContext(MyContext);
  return <div>{contextValue}</div>;
}

使用Refs访问子组件实例

父组件通过ref直接调用子组件的方法或访问其属性。

子组件示例:

import { forwardRef, useImperativeHandle } from 'react';

const ChildComponent = forwardRef((props, ref) => {
  useImperativeHandle(ref, () => ({
    showAlert: () => alert("Child Method Called")
  }));
  return <div>Child Component</div>;
});

父组件示例:

import { useRef } from 'react';
import ChildComponent from './ChildComponent';

function ParentComponent() {
  const childRef = useRef();
  const handleClick = () => {
    childRef.current.showAlert();
  };
  return (
    <>
      <ChildComponent ref={childRef} />
      <button onClick={handleClick}>Call Child Method</button>
    </>
  );
}

标签: 父子通信
分享给朋友:

相关文章

vue实现父子通讯

vue实现父子通讯

父组件向子组件传值(Props) 在父组件中通过v-bind(或简写为:)向子组件传递数据。子组件通过props接收数据。 父组件代码示例: <template> <Chil…

vue父子通讯优雅实现

vue父子通讯优雅实现

Vue 父子组件通信的优雅实现方案 Props 与事件传递 父组件通过 props 向子组件传递数据,子组件通过 $emit 触发事件通知父组件。这是 Vue 官方推荐的基础通信方式。 父组件示例:…

react父子组件如何调用

react父子组件如何调用

父子组件通信方法 父组件向子组件传递数据可以通过props实现。父组件在渲染子组件时,将数据作为属性传递给子组件。 // 父组件 function Parent() { const data =…

react父子组件如何传值

react父子组件如何传值

React 父子组件传值方法 父组件向子组件传值(Props) 父组件通过属性(props)将数据传递给子组件。子组件通过 props 接收数据。 父组件代码示例: import ChildCom…

react如何完成组件通信

react如何完成组件通信

父子组件通信 父组件通过props向子组件传递数据。子组件通过调用父组件传递的回调函数与父组件通信。 // 父组件 function Parent() { const [data, setDat…

react组件通信实现

react组件通信实现

React 组件通信方法 父组件向子组件传递数据 通过 props 传递数据,子组件通过 this.props(类组件)或直接解构(函数组件)接收。 示例代码: // 父组件 <Child…