React 借助pubsub-js进行兄弟组件的传递值

简介: React 借助pubsub-js进行兄弟组件的传递值

1===》 raect中两个 兄弟组件  互相通信使用的技术


使用 消息订阅(subscribe)和发布(publish)机制   s儿 伯 s rai b   pʌ b lɪ ʃ


有一个库可以处理


PubSubJS  它是第三方插件  


1)下载 cnpm install pubsub-js -S    我的版本  "pubsub-js": "^1.7.0",


2) 在需要使用的组件中引入    import PubSub from "pubsub-js"  


 // id 声明一个唯一的id,或者标识符,为pubsub-js提供辨识,千万不可重复


 // data 第二个参数也可以传递一个对象  它表示传递的内容


  PubSub.publish(id, data)   开始发布


Numbergo1 .js兄弟组件  可以向Numbergo2 .js组件传递值


import React, { Component } from "react"
import PubSub from "pubsub-js"
export default class Numbergo1 extends Component {
    // 发送消息:PubSub.publish(名称, 参数)
    state={
        listitem:"我是从一个组件的 跑过来的"
    }
    chuandi=()=>{
        // PubSub.publish(id, data)  
        // id 声明一个唯一的id,或者标识符,为pubsub-js提供辨识,千万不可重复
        // data 第二个参数也可以传递一个对象
        let {listitem}=this.state //结果
        PubSub.publish('mykeyvalue',listitem)
    }
    render() {
        return (
            <div>
                <button onClick={this.chuandi}>按钮</button>
            </div>
        )
    }
}


Numbergo2.js


import React, { Component } from "react"
import PubSub from "pubsub-js"
export default class Numbergo2 extends Component {
    // 发送消息:PubSub.publish(名称, 参数)
    state={
        info:""
    }
    // 声明周期 组件完成挂载之后
    componentDidMount(){
        // mykeyvalue表示符  msg报错信息  data传递过来的数据
        PubSub.subscribe("mykeyvalue",(msg,data)=>{
            console.log("从另外一个组件从低过来的数据",data);
            this.setState({
                info: data
            })
        })
    }
    render() {
        // render使用state中的数据 必须要先解构构
        let {info}=this.state
        return (
            <div>
                ----{info}
            </div>
        )
    }
}

1425695-20191003230027404-1011826973.png


相关文章
|
5天前
|
JavaScript
Vue.js中实现自定义组件的双向绑定
Vue.js中实现自定义组件的双向绑定
|
5天前
|
JavaScript
Vue.js中使用作用域插槽实现自定义表格组件
Vue.js中使用作用域插槽实现自定义表格组件
|
30天前
|
缓存 前端开发 JavaScript
React和Next.js开发常见的HTTP请求方法
React和Next.js开发常见的HTTP请求方法
23 0
|
1月前
|
前端开发 网络架构 UED
React Next.js框架
React Next.js 是一个基于 React 的服务器渲染框架,用于构建高性能的现代Web应用。它提供内置的服务器渲染、静态导出、动态路由功能,并自动进行代码拆分。Next.js 还支持热模块替换、CSS-in-JS 和客户端路由,拥有丰富的插件生态系统,简化了开发过程,提升了应用的性能和用户体验。
|
1月前
|
JavaScript 前端开发 API
Vue.js 中子组件向父组件传值的方法
Vue.js 中子组件向父组件传值的方法
31 2
|
1月前
|
SQL 存储 前端开发
React&Nest.js全栈社区平台(五)——👋封装通用分页Service实现文章流与详情
React&Nest.js全栈社区平台(五)——👋封装通用分页Service实现文章流与详情
React&Nest.js全栈社区平台(五)——👋封装通用分页Service实现文章流与详情
|
1月前
|
存储 SQL 前端开发
React&Nest.js社区平台(四)——✏️文章发布与管理实战
React&Nest.js社区平台(四)——✏️文章发布与管理实战
|
1月前
|
存储 前端开发 API
React&Nest.js全栈社区平台(三)——🐘对象存储是什么?为什么要用它?
React&Nest.js全栈社区平台(三)——🐘对象存储是什么?为什么要用它?
|
1月前
|
存储 前端开发 中间件
切图仔做全栈:React&Nest.js社区平台(二)——👋手把手实现优雅的鉴权机制
切图仔做全栈:React&Nest.js社区平台(二)——👋手把手实现优雅的鉴权机制
|
1月前
|
前端开发 NoSQL 数据库
切图仔做全栈:React&Nest.js社区平台(一)——基础架构与邮箱注册、JWT登录实现
切图仔做全栈:React&Nest.js社区平台(一)——基础架构与邮箱注册、JWT登录实现