@cactuslab/usepubsub

中文文档
1.0.2发布于 2021/02/04MITTypeScriptCommonJS零依赖近 30 天下载 5336

将 Publish 和订阅添加到 React 应用程序的响应钩 .

中文使用文档
文档目录5 节
  1. 安装
  2. 使用量
  3. 提供自定义上下文
  4. API 参考
  5. 许可证

使用 PubSub

将 Publish 和订阅添加到 React 应用程序的响应钩 .

NPM JavaScript Style Guide

这个 usePubSub 钩子为您的 React 组件提供了访问当前 PubSubContext打开 你可以做到这一点 publish 给频道留言,以及 subscribe 到频道接收消息.

你提供 PubSubContext 使用 <PubSubProvider> 在应用程序的根层(或任何地方).

您也可以明确创建 PubSubContext 使用 createPubSubContext() 并提供给: <PubSubProvider context={myContext}>,然后使用 publish, (中文(简体) ), subscribe 财务报告和审定财务报表 unsubscribe 工作方法 PubSubContext 你申请的任何地方.

安装

npm install --save @cactuslab/usepubsub

使用量

import * as React from 'react'

import { usePubSub, PubSubProvider } from '@cactuslab/usepubsub'

/* Add a top-level PubSubProvider to your app to initialise the PubSub context */
const App = () => {
   return (
    <PubSubProvider>
      ...
    </PubSubProvider>
  )
}

const ExampleSubscriber = () => {
  const { subscribe } = usePubSub()
  React.useEffect(function() {
    return subscribe('CHANNEL', function(message) {
      ...
    })
  })
}

const ExamplePublisher = () => {
  const { publish } = usePubSub()
  
  function sendMessage() {
    publish('CHANNEL', nextMessage)
  }
}

提供自定义上下文

使用 createPubSubContext() 创建 PubSubContext,然后调用 publish, (中文(简体) ), subscribe 财务报告和审定财务报表 unsubscribe 在你的申请的任何地方.

import { createPubSubContext, PubSubProvider } from '@cactuslab/usepubsub'

const myContext = createPubSubContext()

myContext.subscribe('ALERT_CHANNEL', function(message) {
  alert(message)
})

const App = () => {
  return (
    <PubSubProvider context={myContext}>
      ...
    </PubSubProvider>
  )
}

API 参考

type Handler = (message: unknown) => void

interface PubSubContext {
  publish: (channel: string, message: unknown) => void
  subscribe: (channel: string, handler: Handler) => () => void
  unsubscribe: (channel: string, handler: Handler) => void
}

/* Functions */
function createPubSubContext(): PubSubContext

/* Hooks */
function usePubSub(): PubSubContext

/* Components */
<PubSubProvider />
<PubSubProvider context={PubSubContext} />

许可证

麻省理工学院 仙人掌


此钩是使用 创建- 反应- hook。 。 。 .

版本与发布记录

@cactuslab/usepubsub 共发布 3 个版本,首次发布于 2021/02/03;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.0.2latest2021/02/045 年前
1.0.12021/02/035 年前
1.0.02021/02/035 年前

关于 @cactuslab/usepubsub 的常见问题

@cactuslab/usepubsub 是什么?

将 Publish 和订阅添加到 React 应用程序的响应钩 .

如何安装 @cactuslab/usepubsub?

在项目目录运行 npm install @cactuslab/usepubsub,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^16.9.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@cactuslab/usepubsub 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@cactuslab/usepubsub 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@cactuslab/usepubsub 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=8。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@cactuslab/usepubsub 可以商用吗?

@cactuslab/usepubsub 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@cactuslab/usepubsub 的下载量有多少?

根据 npm 官方下载统计,@cactuslab/usepubsub 在 2026/10/09 – 2026/11/07 这 30 天内被下载 5,336 次,日均约 178 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cactuslab/usepubsub 还在维护吗?

最新版本 1.0.2 发布于 2021/02/04(5 年前);至今共发布 3 个版本,其中过去 12 个月发布了 0 个;首次发布于 2021/02/03。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。