u-node-mq
Version:
基于发布订阅模型的消息通信插件
100 lines (67 loc) • 3.57 kB
Markdown
<!-- https://duotones.co/ -->
<p align="center">
<a href="https://github.com/Juaoie/u-node-mq" style="margin-right:20px"><img src="https://img.shields.io/github/stars/Juaoie/u-node-mq?labelColor=11245E&color=DC4379&logo=github" alt="Stars"></a>
<a href="https://github.com/Juaoie/u-node-mq" style="margin-right:20px"><img src="https://img.shields.io/github/forks/Juaoie/u-node-mq?labelColor=290900&color=FFEFB3&logo=github" alt="Forks"></a>
<a href="https://github.com/Juaoie/u-node-mq" style="margin-right:20px"><img src="https://img.shields.io/github/languages/code-size/Juaoie/u-node-mq?labelColor=682218&color=F8BE3D&logo=github" alt="Size"></a>
<a href="https://github.com/Juaoie/u-node-mq" style="margin-right:20px"><img src="https://img.shields.io/npm/v/u-node-mq?labelColor=00007E&color=6AFF7F&logo=npm" alt="Version"></a>
<a href="https://github.com/Juaoie/u-node-mq" style="margin-right:20px"><img src="https://img.shields.io/github/languages/top/Juaoie/u-node-mq?labelColor=01AB6D&color=FBF019&logo=TypeScript&logoColor=FDD9E2" alt="Languages"></a>
<a href="https://github.com/Juaoie/u-node-mq" style="margin-right:20px"><img src="https://img.shields.io/github/license/Juaoie/u-node-mq?labelColor=7F01D3&color=01DBFE" alt="Count"></a>
</p>
- [README.md](./README.md)
- [todo.md](./todo.md)
- docs
- [nav.md](./docs/nav.md) 导航预览
- [unmq.md](./docs/unmq.md) 快速开发
- [other.md](./docs/other.md) 其他
- internal
- [index.md](./docs/internal/index.md) 组件介绍
- [logs_sys_dev.md](./docs/internal/logs_sys_dev.md) 自定义日志系统开发
- [termui.md](./docs/internal/termui.md) termui 使用
- operators
- [index.md](./docs/operators/index.md) 操作符介绍
- plugins
- [index.md](./docs/plugins/index.md) 插件介绍
- [IframePlugin.md](./docs/plugins/IframePlugin.md) Iframe 通信插件
`u-node-mq`是用来解决前端项目中数据异步通信问题的工具,可以准确的将一个模块的数据传到另一个模块,就像`rabbitMQ`使用发布订阅模型的中间件一样,使用`u-node-mq`可以完全解耦前端模块的耦合;
- `u-node-mq`在文档和代码注释中有时也会写成简写`unmq`;
- `u-node-mq`中的`u`是标识词;`node`是最初创建项目的执行环境是 `node`,但是后面经过使用 `ts` 升级和重构,现在已经升级到可以在所有 `js` 环境中执行;`mq`是`message queue`的简写;
- [其他信息](./docs/other.md)
`pnpm add u-node-mq`
or
`yarn add u-node-mq`
or
`npm install u-node-mq`
**unmq.js**
```javascript
import UNodeMQ, { Exchange, Queue } from "u-node-mq";
//声明交换机ex1,以及队列qu1
const unmq = new UNodeMQ({ ex1: new Exchange({ routes: ["qu1"] }) }, { qu1: new Queue() });
export default unmq;
//可以挂到抬手就摸得到的位置
// Vue.prototype.unmq = unmq; //(Vue 2.x)
// const app = createApp({})
// app.config.globalProperties.unmq = unmq //(Vue 3.x)
```
**模块 A.js**
```javascript
import unmq from "unmq.js";
//发送数据
unmq.emit("ex1", "消息内容1", "消息内容2");
```
**模块 B.js**
```javascript
import unmq from "unmq.js";
//接收并消费数据
unmq.on("qu1", getData);
function getData(data) {
console.log(data);
}
```