react中组件通信的示例分析
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,小编给大家分享一下react中组件通信的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!父组件与子组件通信父组件将自己的状态传递给子组件,子组件当做属性来接收,当父组件更改自己
千家信息网最后更新 2026年11月02日react中组件通信的示例分析
小编给大家分享一下react中组件通信的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
父组件与子组件通信
父组件将自己的状态传递给子组件,子组件当做属性来接收,当父组件更改自己状态的时候,子组件接收到的属性就会发生改变
父组件利用ref对子组件做标记,通过调用子组件的方法以更改子组件的状态,也可以调用子组件的方法
父组中定义ref引用
import React,{Component,createRef} from 'react'import Child1 from './Child1'export default class App extends Component { constructor(props){ super(props) this.child=createRef() } render(){ return( ) } fn(){ const child=this.child.current child.setTitle() }}子组件定义好数据源和修改数据源方法
import React,{Component} from 'react'export default class Child1 extends Component{ state={ title:'标题' } render(){ return ( {this.state.title} ) } setTitle(){ this.setstate({title:'hh'}) }}子组件与父组件通信
父组件将自己的某个方法传递给子组件,在方法里可以做任意操作,比如可以更改状态,子组件通过this.props接收到父组件的方法后调用。
跨组件通信
在react没有类似vue中的事件总线来解决这个问题,一是我们借助它们共同的父级组件通过代理的方式来实现,但过程会相当繁锁。react提供了Context来实现跨组件通信, 而不必显式地通过组件树的逐层传递 props。
复杂的非父子组件通信在react中很难处理,多组件间的数据共享也不好处理,在实际的工作中我们会使用flux、redux、mobx来实现
祖先子孙
定义store类 导出createContext中的Provider,COnsumer
在祖先节点中发布消息: Provider value=任意数据
在子孙节点中订阅:Consumer 回调函数{value=>(组件)}
1.定义数据源store
store.js
import React , {createContext} from 'react'let {Provider,Consumer} = createContext()export { Provider,//发布 Consumer//订阅 }2.祖先节点
import React ,{Component} from 'react'import {Provider,Consumer} from './store'import Son from './Son'export default class App extends Component{ constructor(props){ super(props) this.state={ name:'mingcen' } } render(){ return ( ) }}3.后代节点
import React,{Component} from'react'import {Consumer} from './store'export default class Son1 extends Component{ constructor(props){ super(props) this.state={ name:'uuu' } } render(){ return( { value=>{ {value.name} } } ) }}兄弟节点通信
一个子物体挂在事件
另一个挂在属性
通过实践改变属性,来改变另一个组件接受的内容
祖先
state={ count:1, setCount:()=>{ this.setState(state=>{ return{ count:++state.count } }) }}render(){ let {count,setCount} = this.state return( )}兄弟Cmp2
import React, { Component ,createContext} from 'react'export default class Cmp2 extends Component { // 只得到了默认数据 --> 没有包裹在Provider组件中 static contextType = createContext render() { return ( ) } setCount() { this.context.setCount() }}兄弟Cmp1
{ value => {value.count}
}
看完了这篇文章,相信你对"react中组件通信的示例分析"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
组件
通信
数据
方法
节点
属性
状态
祖先
兄弟
数据源
示例
分析
事件
子孙
篇文章
处理
订阅
复杂
不好
个子
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技股
互联网和科技技术
互联网科技行业发展
互联网金融监管科技数据
河南真二互联网科技有限公司
互联网为科技
互联网金融与金融科技
互联网科技公司官网
奇酷互联网络科技公司
大白互联网科技
互联网科技公司名称
河南猎农互联网科技有限公司
宜昌元轩互联网科技有限公司
坤平互联网科技
民营互联网公司国防科技
互联网科技的全部知识
互联网科技收购价值
北京天晋互联网科技有限公司
恒生科技指数 中概互联网
恒生科技互联网指数十大成分股
互联网科技工作委员会
重庆互联网络科技
博兴的互联网电子科技公司
深圳国际航运科技和互联网
须眉科技是互联网公司吗
互联网金融科技公司的优势
互联网与数字科技关系
抖集互联网科技技术咨询
兰石爱特工业互联网科技分公司
互联网大会出现的黑科技