React如何实现无嵌套组件通信
发表于:2025-02-11 作者:千家信息网编辑
千家信息网最后更新 2025年02月11日,这篇文章将为大家详细讲解有关React如何实现无嵌套组件通信,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。兄弟(无嵌套)组件通信当两个组件互不嵌套,处在同个层级或者
千家信息网最后更新 2025年02月11日React如何实现无嵌套组件通信
这篇文章将为大家详细讲解有关React如何实现无嵌套组件通信,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
兄弟(无嵌套)组件通信
当两个组件互不嵌套,处在同个层级或者不同层级上,他们之间要进行通信,有以下几种常用方法
1、某个组件先将值传到同一个父组件,然后在通过父组件传给另外一个组件,用到父子组件传值
2、使用缓存sessionStorage、localStorage等
3、如果两个组件之间存在跳转,可以使用路由跳转传值,附上详细用法
React学习笔记 -- 组件通信之路由传参(react-router-dom)_前端菜小白leo的博客-CSDN博客
4、event(发布--订阅)
首先,安装event
npm install event -save
新建一个event.js
import { EventEmitter } from 'events';export default new EventEmitter();
然后另两个组件处于同层级(不同个父组件或者不同层级都可以)
import React from 'react';import Grandson from './Grandson';import GrandsonOther from './GrandsonOther'; class Children extends React.Component { render(){ return () }} export default Children
组件一,导入event,在componentDidMount阶段添加监听addListener(订阅),在componentWillUnmount移除监听removeListener,事件名称与组件二中emit一致。
import React from 'react';import event from '../event';import { Button } from 'element-react' class Grandson extends React.Component { constructor(props) { super(props); this.state = { msg:'' } this.toOther = this.toOther.bind(this) } toOther(){ event.emit('eventMsg','通过evnet传过来的值') } render(){ return () }} export default Grandson组件二
{this.state.msg}
组件二,导入event,按钮绑定方法,使用event.emit触发(发布)事件。
import React from 'react';import event from '../event';import { Button } from 'element-react' class Grandson extends React.Component { constructor(props) { super(props); this.state = { msg:'' } this.toOther = this.toOther.bind(this) } toOther(){ event.emit('eventMsg','通过evnet传过来的值') } render(){ return () }} export default Grandson组件二
{this.state.msg}
点击按钮,组件二发布事件,组件一监听(订阅)事件,更新内容。(如果交换发布者订阅者身份,写法一致)
注意:如果两个组件使用event进行通信,确保发布订阅的事件名称一致,如上例中 eventMsg
关于"React如何实现无嵌套组件通信"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
组件
通信
事件
订阅
两个
层级
不同
一致
篇文章
监听
之间
内容
博客
名称
按钮
方法
更多
路由
不错
实用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
钉钉的服务器在巴西什么意思
服务器管理手法
中医药游戏软件开发项目背景
系统数据库resource
数据库新技术的探索
网络安全需求分析
如何成为嵌入式软件开发高手
软件开发技术基础考试题
网络安全道德品质该写什么内容
申请云服务器
图像检测软件开发
海康威视监控服务器操作系统
智能化少儿编程平台软件开发
百日攻坚网络安全宣传
北京红云榜网络技术
第二课堂下载软件开发
君罡互联网科技山东有限公司
dnf服务器人满了怎么挤进去
网上学习软件开发开发课程
20岁初中学历怎么学软件开发
央行网络安全处
体系架构在软件开发中的作用
双簧打麻将软件开发
海南网络时间同步服务器
开发管理系统的服务器
三河市鑫众网络技术有限公司
数据库无法导入sql文件
delphi 建立数据库
核磁属于新型网络技术吗
计算机应用技术跟网络技术区别