vue 自己带了一个简易的 pub/sub 工具 bus
对于简单的数据通信来说这已经足够使用.
vuex 这种相对来说标准化更高, 对于 大型团队和复杂项目来使用相对才能 看出好处
自制一个
不管 redux/nodejs 还是啥,这种消极机制在开发中经常会看到.
- 消息队列
- redis
- 反应式编程库
- 各种 agent 和 数据通信的调度
核心插件代码:
import Vue, { PluginFunction } from "vue" |
使用
- main.ts 引入插件
import HubPlugin from "@/utils/hub" |
- 组件中注册事件
methods: { |
- 需要监听的地方订阅消息
export default { |
总结:
- on 注册事件和 callback,获取句柄
- off 用句柄取消订阅
- emit 触发消息
对于本组件订阅的消息,请自行在 beforeDestroy 中取消订阅, 以免无畏的内存消耗