首页 > 其他分享 >react中实现发布订阅

react中实现发布订阅

时间:2023-03-23 17:33:31浏览次数:26  
标签:订阅 ... res js react 发布 组件 pubsub

1. 安装插件

npm install pubsub-js --save-dev

 2. 在需要发布消息的组件引入使用

import pubsub from 'pubsub-js';

...
// 发布消息
pubsub.publish('name','hello world')

3. 在需要订阅消息的组件引入使用

import pubsub from 'pubsub-js';

...
// 发布消息
pubsub.subscribe('name',(_,res)=>{
    console.log(res); // hello world
})

4. 取消订阅

为了节约资源,我们需要取消订阅

...
useEffect(()=>{
    let msg = pubsub.subscribe('name',(_,res)=>{
        console.log(res); // hello world
    })
    return ()=>{  // 组件销毁前执行,相当于componentWillUnmount
        pubsub.unsubscribe(msg); // 取消订阅
    }
},[]) // 第二个参数传入空数组表示只在第一次渲染组件的时候执行一次

 

标签:订阅,...,res,js,react,发布,组件,pubsub
From: https://www.cnblogs.com/maxiaocang/p/17248159.html

相关文章

  • react中的useRef和useContext
    1.useRef和useState类似,都是用来更新数据,但是useRef更新数据是同步的useRef返回一个对象,初始化数据保存在current字段下import{useRef}from'react';constdata=......
  • react项目中state和useState
    1.在类组件中,数据保存在state中,更新数据使用setStatesetState有两种用法函数式state={count:0}...setState(state=>(count:state.count+1))对象式state={......
  • React的组件通信与状态管理
    目录1.组件通讯-概念1.组件的特点2.知道组件通讯意义总结:2.组件通讯-props基本使用1.传递数据和接收数据的过程2.函数组件使用props 3.类组件使用props总......
  • react的组件创建类型
    一、类组件(有状态组件)有props.控制状态state,可以试用生命周期函数1. 类名称必须以大写字母开头 2. 类组件必须继承React.Component父类,从而可以使用父类中提供的......
  • vue3 使用reactive定义变量时,会出现数据变化,页面未更新渲染
    vue3使用reactive定义变量时,会出现数据变化,页面未更新渲染,具体情况如下:import{reactive}from'vue';consttestObject=reactive({ show:false, titleL:'这里是标......
  • react-text-loop-next
    react-text-loop-nextAnanimatedloopoftextnodesforyourheadings.Uses react-motion forthetransitionsoithandlessuperfastanimationsandspring......
  • JDK20正式发布了GA版本,短期维护支持,以及JDK21预览
    JDK20正式发布了GA版本,短期维护支持,以及JDK21预览最近,Oracle发布了JDK20,相比对于Java开发者来说,JDK的发版是比较收关注的事情了,小简也来和大家一起了解了解JDK20发生了什......
  • React学习笔记(四)—— 组件通信与状态管理、Hooks、Redux、Mobe
    react管理状态的工具:1、利用hooks进行状态管理;2、利用Redux进行状态管理,这种方式的配套工具比较齐全,可以自定义各种中间件;3、利用Mobx进行状态管理,它通过透明的函数响应......
  • React Native 快速上手
    reactnative储备知识扎实的JS基础+React相关知识核心组件创建项目:npmuninstall-greact-native-cli@react-native-community/clinpxreact-nativeinitAwesome......
  • React 的学习笔记一 (未完结)
    一、React是什么 React是一个声明式,高效且灵活的用于构建用户界面的JavaScript库。使用React可以将一些简短、独立的代码片段组合成复杂的UI界面,这些代码片段被......