Ashun's 技術駅 Ashun's 技術駅
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • Vue
  • 现代web布局
  • React
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 技术资源
  • 第一阶段

    • HTML
  • 第二阶段

    • JavaScript
  • 第三阶段

    • Vue
  • 第四阶段

    • 实战项目
  • 每周测试

    • 每周
  • 其他

    • Vue引入UI框架
    • Web前端面试
    • Vue3-resource
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 福利资源
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Ashun

前端界的小学生
首页
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • HTML
  • CSS
  • Vue
  • 现代web布局
  • React
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 技术资源
  • 第一阶段

    • HTML
  • 第二阶段

    • JavaScript
  • 第三阶段

    • Vue
  • 第四阶段

    • 实战项目
  • 每周测试

    • 每周
  • 其他

    • Vue引入UI框架
    • Web前端面试
    • Vue3-resource
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 福利资源
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • HTML

  • CSS

  • Vue

  • 现代web布局

  • React

    • 关于 react
    • 关于 redux
    • react 定义插槽
    • react 父子组件通信(第二篇)
    • react 父子组件通信(第一篇)
    • react 函数组件的生命周期有哪些
    • react 类组件和函数组件
    • react 实现监听器功能
  • 页面
  • React
ashun
2023-12-15

react 父子组件通信(第一篇)

# react 父子组件通信(第一篇)

在React中,父组件可以通过props向子组件传递数据,但是如果你想让父组件能够调用子组件的方法,或者让子组件向父组件传递数据,就需要使用一些特殊的技巧¹²⁷。

父组件调用子组件的方法: 你可以使用React.createRef()或ref的函数式声明来创建一个引用,然后将这个引用传递给子组件。在子组件中,你可以使用React.forwardRef()来接收这个引用,并将其绑定到一个实例方法上。然后,父组件就可以通过这个引用来调用子组件的方法¹²。

以下是一个示例:

class Child extends React.Component {
  myMethod() {
    console.log('Child component method');
  }
  render() {
    return <div>Child Component</div>;
  }
}

class Parent extends React.Component {
  constructor(props) {
    super(props);
    this.childRef = React.createRef();
  }
  componentDidMount() {
    this.childRef.current.myMethod();
  }
  render() {
    return <Child ref={this.childRef} />;
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

在这个示例中,父组件Parent在componentDidMount生命周期方法中调用了子组件Child的myMethod方法。

子组件向父组件传递数据: 子组件可以通过props向父组件传递一个函数,然后在需要的时候调用这个函数,并将数据作为参数传递给这个函数⁷。

以下是一个示例:

class Parent extends React.Component {
  handleData(data) {
    console.log(data);
  }
  render() {
    return <Child onData={this.handleData} />;
  }
}

class Child extends React.Component {
  componentDidMount() {
    this.props.onData('Data from Child');
  }
  render() {
    return <div>Child Component</div>;
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

在这个示例中,子组件Child在componentDidMount生命周期方法中调用了父组件Parent传递的onData方法,并将字符串'Data from Child'作为参数传递给这个方法。

希望这个信息对你有所帮助,如果你有任何其他问题,欢迎随时向我提问。😊

源: 与必应的对话, 2023/11/30

  1. React父组件调用子组件的方法 - 掘金. https://juejin.cn/post/6977367229960552455.
  2. react中父组件调用子组件的方法 - CSDN博客. https://blog.csdn.net/qq_36990322/article/details/109858890.
  3. react函数式组件传值之子传父_react 子传父-CSDN博客. https://blog.csdn.net/w544924116/article/details/119565219.
  4. React父组件调用子组件的方法-腾讯云开发者社区-腾讯云. https://cloud.tencent.com/developer/article/2041914.
  5. react函数式组件之---父组件调用子组件实例方法 - 木易锅巴 - 博客园. https://www.cnblogs.com/yxfboke/p/14837279.html.
  6. 在 React 中如何在组件之间传递数据和事件 - freeCodeCamp.org. https://www.freecodecamp.org/chinese/news/pass-data-between-components-in-react/.
  7. React 父子组件通信的几种方法 - 掘金. https://juejin.cn/post/7028779975780073485.
  8. React中子组件如何向父组件传递数据 - 半忧夏 - 博客园. https://www.cnblogs.com/banyouxia/p/12158101.html.
编辑 (opens new window)
上次更新: 2023/12/15, 15:07:46
react 父子组件通信(第二篇)
react 函数组件的生命周期有哪些

← react 父子组件通信(第二篇) react 函数组件的生命周期有哪些→

最近更新
01
课件-react路由-V6
01-22
02
课件-国际化
01-22
03
课件-redux-toolkit
01-22
更多文章>
Theme by Vdoing | Copyright © 2019-2024 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式