React组件通信——父传子

父传子

  1. 父组件传递数据,子组件标签身上绑定属性
  2. 子组件接收数据, props的参数
import { useState } from "react";
// 定义自组件,接受props参数
function Son(props) {
  console.log(props);
  return <div>this is son{props.name}</div>;
}
// 定义父组件
function App() {
// 再父组件中定义要传递的参数
  let [name, setname] = useState("父组件参数");
  return (
    <div>
    // 在子组件上绑定属性
      <Son name={name} />
    </div>
  );
}

运行结果
在这里插入图片描述

直接写在标签里的中,父组件在名为children的prop属性中接收改内容

function Son(props) {
  return <div>this is son{props.children}</div>;
}
function App() {
  let [name, setname] = useState("父组件参数,在children里");
  return (
    <div>
      <Son>
        <div>{name}</div>
      </Son>
    </div>
  );
}

在这里插入图片描述

注意
props可以传递任意的数据,自组件只能读取数据,不能修改

### React Class 组件中子组件组件传递参数的方法 在 React 中,可以通过回调函数的方式让子组件组件传递数据。具体来说,在组件定义一个方法并通过 `props` 将该方法传递给子组件。当子组件调用这个方法时,可以将需要的数据作为参数传递回组件。 以下是详细的实现方式: #### 实现步骤说明 1. **组件定义回调函数** 在组件内部定义一个处理逻辑的函数,并将其绑定到当前实例上以便于正确访问状态或属性。 2. **通过 props 将回调函数传递至子组件** 把上述定义好的函数作为一个 prop 属性赋值给子组件。 3. **子组件触发回调并将数据返回给组件** 当特定事件发生时(比如按钮点击),子组件可以直接调用从组件接收到的回调函数,并附带所需传输的信息。 #### 示例代码展示 ```javascript // 组件 (ParentComponent.js) import React, { Component } from 'react'; class ParentComponent extends Component { constructor(props) { super(props); this.state = { messageFromChild: '' }; } // 定义接收消息的回调函数 handleMessageFromChild = (childMessage) => { this.setState({ messageFromChild: childMessage }); }; render() { return ( <div> {/* 显示来自子组件的消息 */} <h3>Message From Child: {this.state.messageFromChild}</h3> {/* 通过 props 将回调函数传递给子组件 */} <ChildComponent onSendMessage={this.handleMessageFromChild} /> </div> ); } } export default ParentComponent; // 子组件 (ChildComponent.js) import React, { Component } from 'react'; class ChildComponent extends Component { sendMessageToParent = () => { const message = "Hello, I'm the Child!"; // 调用组件传入的回调函数并发送消息 if (typeof this.props.onSendMessage === 'function') { this.props.onSendMessage(message); } }; render() { return ( <button onClick={this.sendMessageToParent}> Send Message to Parent </button> ); } } ``` 在这个例子中,`handleMessageFromChild` 是由组件定义的一个方法[^1],它被设置为子组件的 `onSendMessage` 属性的一部分。一旦用户点击了子组件内的按钮,则会执行 `sendMessageToParent` 函数来通知其级更新显示的内容[^2]。 #### 关键点解析 - **回调机制的应用**: 这种模式利用 JavaScript 的闭包特性使得即使是在不同的作用域下也能安全有效地共享行为和数据流控制权。 - **单向数据流动原则**: 数据总是自顶向下流动;即只有节点能够改变自己的 state 或者修改子节点的行为/外观,而反过来则不行——除非借助额外手段像这里介绍过的那样建立显式的通信桥梁。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值