当前位置:首页 > 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} />;
}

子组件示例:

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;

父组件提供数据:

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>
    </>
  );
}

react实现父子通信

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

相关文章

h5实现通信

h5实现通信

H5实现通信的方法 H5(HTML5)提供了多种通信方式,适用于不同场景的需求。以下是常见的几种实现方法: WebSocket通信 WebSocket是一种全双工通信协议,适用于实时性要求高的场景…

vue父子实现

vue父子实现

Vue 父子组件通信实现 Vue 中父子组件通信主要通过 props 和自定义事件实现。父组件向子组件传递数据使用 props,子组件向父组件传递数据使用自定义事件。 父组件向子组件传递数据 父组…

vue实现长通信

vue实现长通信

Vue 实现长连接的几种方法 在 Vue 中实现长连接通信通常涉及 WebSocket、Server-Sent Events (SSE) 或轮询等技术。以下是几种常见的实现方式: WebSocke…

vue父子组件如何实现

vue父子组件如何实现

vue父子组件通信方法 父组件向子组件传递数据 使用props属性实现父组件向子组件传递数据。父组件通过v-bind绑定数据,子组件通过props接收。 父组件模板: <child-comp…

vue项目实现非父子

vue项目实现非父子

Vue 项目中实现非父子组件通信的方法 在 Vue 项目中,非父子组件通信可以通过多种方式实现,以下是几种常见的方法: 使用 Vuex 状态管理 Vuex 是 Vue 的官方状态管理库,适用于中大型…

vue如何实现父子通信

vue如何实现父子通信

父子组件通信方法 父组件向子组件传递数据 使用props属性实现父向子传值。父组件通过v-bind绑定数据,子组件通过props接收。 父组件模板示例: <ChildComponen…