父子通讯
父级组件调用子组件,通过 props 来传递参数,子组件通过 this.props 来接收
1 | import React from "react"; |
子父通讯
父级组件通过 props 给子组件传递一个回调函数,子级组件调用父级传递过来的回调,将参数返回
1 | import React from "react"; |
同级通讯
1 | npm install --save events |
跨级组件通讯 - 发布订阅模式
1 | const eventProxy = { |
跨级通讯
案例描述:
当前有三个组件,包裹顺序依次是: Parent > Middle > Children 现在 Parent 组件有数据要传递给 Children 组件
- Parent > Middle > Children 具体方案请参考 props 传参
- Parent > Children 具体方案如下,通 context 对象完成数据传递:
1 | import React from "react"; |
跨级组件通讯(新)
1 | conts { Provider ,Consumer}= React.createContect([defaultValue]) |
父组件向子组件通讯
1 | 父组件 |
父组件向子组件传 (值&&回调函数)
1 | 父组件; |
1 | 子组件 |
子组件向父组件通讯
- 利用回调函数传值
1 | 父组件 |
跨级组件通讯
context 层层组件传递 props[参考链接https://www.jianshu.com/p/65b348bf86ad]
例如 A 组件和 B 组件之间进行通信,需要先找到 A 和 B 公共的父组件,A 先向 C 组件通信,C 组件通过 props 和 B 组件通信,此时 C 组件起的就是中间件的作用。
使用 context,是一个全局变量,像是一个大容器,再任何地方都可以访问到,我们可以把要通信的信息放在 context 上,然后再其他组件中可以随意取到。
React 官网不建议使用大量的 context,尽管他可以减少逐层传递,当组件结构复杂的时候,并不知道 context 是从哪里传过来的,context 是一个全局变量。
准备工作 再 src 下新建 content/index.js 目录
1 | content / index.js; |
1 | App.js中; |
1 | 父组件; |
1 | Consumer孙组件; |
没有嵌套关系组件之间的通讯
- 使用自定义事件机制
自定义事件是典型的发布订阅模式,通过向事件对象上添加事件监听器和触发事件来实现组件之间的通信
1 | npm install events --save |
使用 ref
再需要获取组件实例上
再用到这个个form表单的组件内,this.refs.addForm.refs.childForm.validateFields();I'm so cute. Please give me money.
- Post link: https://blog.gaocaipeng.com/2020/04/19/piixso/
- Copyright Notice: All articles in this blog are licensed under unless otherwise stated.