react中组件通信的示例分析
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,小编给大家分享一下react中组件通信的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!父组件与子组件通信父组件将自己的状态传递给子组件,子组件当做属性来接收,当父组件更改自己
千家信息网最后更新 2025年01月20日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安全错误
数据库的锁怎样保障安全
儿童网络安全与教育视频
2017 网络安全
现在做网络安全如何
2021校园网络安全宣传视频
我的世界怎么用后台查服务器ip
erp服务器和主机的区别
对软件开发的理解及建议
长城汽车公司软件开发薪酬
四川名优数据库
c 服务器管理
浙江信息化软件开发服务有哪些
新型网络安全教育
丰田车载网络技术
国家网络安全管理总局公告
湖南商学院网络安全
电商云服务器解决不同ip
数据库id自增是否可以设置
第一台服务器
医疗软件开发目的模板
数据库 贝塔值
SqLite数据库 博客
二手服务器前景如何
上位机软件开发工资低
数据库修复dbcheck
大专网络技术考几门可以毕业
开服务器的靠什么挣钱
信息化及网络安全2021答案
把服务器充爆的游戏视频
我的世界国际服手机服务器教学
pl数据库修改密码