当前位置:首页 > React

react父子组件如何调用

2026-03-10 19:18:40React

父子组件通信方法

父组件向子组件传递数据 通过props传递数据给子组件,子组件通过this.props接收。

父组件代码示例:

<ChildComponent message="Hello from Parent" />

子组件代码示例:

class ChildComponent extends React.Component {
  render() {
    return <div>{this.props.message}</div>;
  }
}

子组件向父组件传递数据 通过回调函数实现,父组件将函数作为prop传递给子组件,子组件调用该函数。

父组件代码示例:

handleChildData = (data) => {
  console.log(data);
}

<ChildComponent onDataReceived={this.handleChildData} />

子组件代码示例:

<button onClick={() => this.props.onDataReceived('Data from Child')}>
  Send Data
</button>

使用ref访问子组件 父组件可以通过ref直接调用子组件的方法。

父组件代码示例:

react父子组件如何调用

class ParentComponent extends React.Component {
  childRef = React.createRef();

  handleClick = () => {
    this.childRef.current.childMethod();
  }

  render() {
    return (
      <>
        <ChildComponent ref={this.childRef} />
        <button onClick={this.handleClick}>Call Child Method</button>
      </>
    );
  }
}

子组件代码示例:

class ChildComponent extends React.Component {
  childMethod = () => {
    console.log('Child method called');
  }

  render() {
    return <div>Child Component</div>;
  }
}

使用Context跨层级通信 当组件层级较深时,可以使用Context避免props层层传递。

创建Context:

const MyContext = React.createContext();

父组件提供值:

react父子组件如何调用

<MyContext.Provider value={sharedValue}>
  <ChildComponent />
</MyContext.Provider>

子组件消费值:

<MyContext.Consumer>
  {value => <div>{value}</div>}
</MyContext.Consumer>

使用自定义事件 可以通过事件总线或自定义事件实现更灵活的通信。

创建事件总线:

const EventBus = new EventEmitter();

父组件监听事件:

componentDidMount() {
  EventBus.on('childEvent', this.handleChildEvent);
}

componentWillUnmount() {
  EventBus.off('childEvent', this.handleChildEvent);
}

子组件触发事件:

EventBus.emit('childEvent', eventData);

标签: 父子组件
分享给朋友:

相关文章

vue 实现toast组件

vue 实现toast组件

实现 Vue Toast 组件的方法 创建基础 Toast 组件 在 Vue 项目中创建一个基础 Toast 组件,通常包含消息内容和显示控制逻辑。 <template> <d…

vue实现盖章组件

vue实现盖章组件

实现Vue盖章组件的步骤 组件结构设计 创建一个Vue组件,包含画布元素和必要的控制按钮。画布用于显示盖章效果,按钮用于触发盖章操作。组件需要接收图片和盖章位置等参数。 <template&g…

react如何引入组件

react如何引入组件

引入组件的常见方法 直接导入组件文件 通过import语句从指定路径引入组件文件,适用于项目内自定义组件。假设组件文件位于./components/Button.js: import Button…

vue组件实现注册

vue组件实现注册

Vue 组件注册的两种方式 全局注册 通过 Vue.component() 方法注册,注册后可在任意 Vue 实例中使用。通常在项目的入口文件(如 main.js)中操作: import Vue f…

vue实现附件组件

vue实现附件组件

Vue 实现附件组件的方法 基础组件结构 使用 Vue 的单文件组件(SFC)方式创建一个基础的附件上传组件。需要包含文件选择、预览、上传和删除功能。 <template> <…

实现vue全局组件

实现vue全局组件

注册全局组件 在Vue中注册全局组件可以通过Vue.component方法完成。该方法接受两个参数:组件名称和组件选项对象。全局注册的组件可以在任何Vue实例的模板中使用,无需再次注册。 impor…