React组件间的通信

在React中,组件间的通信可以通过以下几种方式实现:

  1. 父子组件通信

    • 父组件通过props向子组件传递数据或回调函数。
    • 子组件通过props接收数据或回调函数,并在需要时调用回调函数向父组件传递数据。
    // 父组件
    function ParentComponent() {
    const handleChildMessage = (message) => {
    console.log("Child message received:", message);
    };
    return (
    <div>
    <h1>Parent Component</h1>
    <ChildComponent onMessage={handleChildMessage} />
    </div>
    );
    }
    
    // 子组件
    function ChildComponent({ onMessage }) {
    const handleButtonClick = () => {
    const message = "Hello from Child Component!";
    onMessage(message); // 调用回调函数向父组件传递数据
    };
    return (
    <div>
    <h2>Child Component</h2>
    <button onClick={handleButtonClick}>Send Message</button>
    </div>
    );
    }
  2. 兄弟组件通信

    • 兄弟组件间通信通常通过共同的父组件来实现。父组件作为中间件,将需要传递的数据或事件存储在父组件的状态中,然后通过props将数据或事件传递给需要接收的子组件。
    // 父组件
    function ParentComponent() {
    const [message, setMessage] = useState("");
    const handleChildMessage = (newMessage) => {
    setMessage(newMessage); // 更新父组件状态中的消息
    };
    return (
    <div>
    <h1>Parent Component</h1>
    <ChildComponent1 message={message} onMessage={handleChildMessage} />
    <ChildComponent2 message={message} />
    </div>
    );
    }
    
    // 子组件(兄弟组件)
    function ChildComponent1({ message, onMessage }) {
    const handleButtonClick = () => {
    onMessage("Hello from Child Component 1!"); // 更新父组件状态中的消息
    };
    return (
    <div>
    <h2>Child Component 1</h2>
    <button onClick={handleButtonClick}>Send Message</button>
    </div>
    );
    }

相关推荐

  1. React通信

    2024-01-05 17:50:05       58 阅读
  2. React通信几种方式

    2024-01-05 17:50:05       22 阅读
  3. vue通信

    2024-01-05 17:50:05       51 阅读
  4. React如何通信

    2024-01-05 17:50:05       39 阅读
  5. vue通信详解

    2024-01-05 17:50:05       46 阅读
  6. ReactReact 之间如何通信

    2024-01-05 17:50:05       46 阅读
  7. React通信方式总结

    2024-01-05 17:50:05       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-05 17:50:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-05 17:50:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-05 17:50:05       82 阅读
  4. Python语言-面向对象

    2024-01-05 17:50:05       91 阅读

热门阅读

  1. Qt3D QGeometryRenderer几何体渲染类使用说明

    2024-01-05 17:50:05       51 阅读
  2. React拖拽实践

    2024-01-05 17:50:05       52 阅读
  3. 白云山橘红痰咳煎膏,止咳值得信赖

    2024-01-05 17:50:05       54 阅读
  4. 常用链表算法——快慢指针法

    2024-01-05 17:50:05       59 阅读
  5. Axios 面试题及答案

    2024-01-05 17:50:05       58 阅读
  6. 工业固体废物智能化综合管控平台

    2024-01-05 17:50:05       59 阅读
  7. 第三方测试检测出来privateKey 怎么办

    2024-01-05 17:50:05       55 阅读
  8. T527 Android13遥控适配

    2024-01-05 17:50:05       51 阅读
  9. C++使用openssl的EVP对文件进行AES-256-CBC加解密

    2024-01-05 17:50:05       53 阅读
  10. go语言gin框架的基本使用

    2024-01-05 17:50:05       70 阅读