react 兄弟组件传值(发布订阅,使用于任何组件传值,包括vue)
react中兄弟组件传值常规操作一般是,A组件传给父组件,父组件再传给B组件
非常规操作 利用 pubsub-js
- 在Home组件内调用 PubSub.publish("第一个参数是事件名", 第二个参数是要传递的数据);
1 import React, { Component } from 'react';
2
3 import PubSub from "pubsub-js";
4
5 class Home extends Component {
6 constructor(props) {
7 super(props)
8 this.state = {
9 msg: "熊的传值的数据"
10 }
11 }
12 render() {
13 return (
14 <div>
15 首页传值
16 <button onClick={() => {this.send()}}>点击发送</button>
17 </div>
18 );
19 }
20 send = () => {
21 //PubSub.publish向外定义方法名 第一个参数是方法名,第二个参数是传递的数据
22 PubSub.publish("methodName", this.state.msg);
23 }
24 }
25
26 export default Home;
- 在兄弟User组件内调用 PubSub.subscribe("methodName", (msg, data) => { }) }
第一个参数是传递过来的时间名,第二个参数是一个函数: 第一个形参是事件名,第二个形参是传递过来的数据
1 import React, { Component } from "react";
2
3 import PubSub from "pubsub-js";
4
5 console.log(PubSub)
6
7 class User extends Component {
8 constructor(props) {
9 super(props);
10 this.state = {12 value: "",
13 };
14 // 使用PubSub.subscribe接收数据(第一个参数是方法名,)
15 PubSub.subscribe("methodName", (msg, data) => {
16 console.log(data, "pppp");
17 // this.setState({ text: data });
18 this.setState({
19 value: data,
20 });
21 });
22 }
23
24 render() {
25 return (
26 <div>
27 用户页接收------- {this.state.value}
29 </div>
30 );
31 }
32
33 getchangevalue = () => {
34
35 }
36 }
37
38 export default User;
react 兄弟组件传值(发布订阅,使用于任何组件传值,包括vue)的更多相关文章
- Angular 发布订阅模式实现不同组件之间通讯
在我们项目中要实现不同组件之间通讯,Angular的@Input和@Output只能实现有父子组件的限制,如果是复杂跨组件实现不同组件可以通过共享变量的方式实现,比如这个博客的思路:https://w ...
- 手把手教你学Dapr - 6. 发布订阅
上一篇:手把手教你学Dapr - 5. 状态管理 介绍 发布/订阅模式允许微服务使用消息相互通信.生产者或发布者在不知道哪个应用程序将接收它们的情况下向主题发送消息.这涉及将它们写入输入通道.同样,消 ...
- 观察者模式 vs 发布-订阅模式
我曾经在面试中被问道,_“观察者模式和发布订阅模式的有什么区别?” _我迅速回忆起“Head First设计模式”那本书: 发布 + 订阅 = 观察者模式 “我知道了,我知道了,别想骗我” 我微笑着回 ...
- js设计模式之发布/订阅模式模式
一.前言 发布订阅模式,基于一个主题/事件通道,希望接收通知的对象(称为subscriber)通过自定义事件订阅主题,被激活事件的对象(称为publisher)通过发布主题事件的方式被通知. 就和用户 ...
- js设计模式之发布订阅模式
1. 定义 发布-订阅模式其实是一种对象间一对多的依赖关系,当一个对象的状态发送改变时,所有依赖于它的对象都将得到状态改变的通知. 订阅者(Subscriber)把自己想订阅的事件注册(Subscri ...
- redis(3)发布订阅
一.发布/订阅模式 在软件工程里面,发布/订阅是一种消息模式,这种模式旨在将消息发送者和消息接收者解耦.发送者不需要关心将消息发送给谁,接收者也不需要知道消息的发送者是谁.发送者将消息发布以后就结束动 ...
- Javascript设计模式之发布-订阅模式
简介 发布-订阅模式又叫做观察者模式,他定义了一种一对多的依赖关系,即当一个对象的状态发生改变的时候,所有依赖他的对象都会得到通知. 回忆曾经 作为一名前端开发人员,给DOM节点绑定事件可是再频繁不过 ...
- Vue—非父子组件间的传值(Bus/发布订阅模式/观察者模式/总线)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 如何创建一个前端 React 组件并发布到 NPM
首先npm文档摆在这里: https://www.npmjs.cn/ 参考组件 https://github.com/rakuten-rex/rex-dropdownhttps://www.npmjs ...
- react 中发布订阅模式使用
react 中发布订阅模式使用 场景 怎么能将设计模式应用到我们的 React 项目中?以前一直在思考这个问题. 场景一 模块 A 模块 B 需要用到同一个数据 data,A 和 B 都会修改这份数据 ...
随机推荐
- [C#]协变Covariance案例
协变参考代码1: using System; using System.Collections.Generic; using System.Linq; namespace CovarianceSoOn ...
- CentOS DNS 安裝步驟
yum install bind bind-utils bind-devel bind-chroot [root@nw-centos-dns-01 ~]# rpm -qa | grep bind bi ...
- MyBatis-Plus 代码生成器超详细讲解
参见: https://www.jianshu.com/p/9d8ab1bb84bb
- [ABC284F] ABCBAC(字符串哈希)
思路 这里我们要注意以下几点: 字符串哈希自然溢出(\(\pmod 2^64\))会被卡,会\(WA~5\)个点 注意有模数的时候不要用\(unsigned\ long \ long\)类型 代码 # ...
- React16下报错引发整个页面crash的解决方法
如果报错没有没有被catch,将会引起整个React组件树的unmounting 解决方法:在生命周期中增加componentDidCatch https://reactjs.org/blog/201 ...
- OSPF之路由撤销
- linux java 环境搭建
java -version 是否安装 yum -y remove java-1.7.0-openjdk* yum -y install java-1.7.0-openjdk* vim /etc/pro ...
- 自己动手从零写桌面操作系统GrapeOS系列教程——18.外设和IO
学习操作系统原理最好的方法是自己写一个简单的操作系统. 一.外设和I/O接口 前面我们介绍过冯·诺依曼结构包含5部分,其中输入设备和输出设备统称为外部设备,简称外设.常见的外设有鼠标.键盘.显示器.硬 ...
- Java面试——写一个生产者与消费者
更多内容,前往个人博客 一.通过synchronize 中的 wait 和 notify 实现 [1]我们可以将生产者和消费者需要的方法写在公共类中 1 package com.yintong.con ...
- 构建基于深度学习神经网络协同过滤模型(NCF)的视频推荐系统(Python3.10/Tensorflow2.11)
毋庸讳言,和传统架构(BS开发/CS开发)相比,人工智能技术确实有一定的基础门槛,它注定不是大众化,普适化的东西.但也不能否认,人工智能技术也具备像传统架构一样"套路化"的流程,也 ...