https://github.com/betterwrite/vue-pubsub
A Pubsub Plugin (or better Event Bus) for Vue.
https://github.com/betterwrite/vue-pubsub
event-bus mitt pubsub typescript vue vue3 vuejs
Last synced: 10 months ago
JSON representation
A Pubsub Plugin (or better Event Bus) for Vue.
- Host: GitHub
- URL: https://github.com/betterwrite/vue-pubsub
- Owner: betterwrite
- Created: 2023-03-30T14:26:55.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2025-08-20T23:18:54.000Z (10 months ago)
- Last Synced: 2025-08-20T23:32:21.783Z (10 months ago)
- Topics: event-bus, mitt, pubsub, typescript, vue, vue3, vuejs
- Language: TypeScript
- Homepage:
- Size: 41 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# Vue Pubsub
A Pubsub Plugin (or better Event Bus) for Vue, inspired in [mitt](https://github.com/developit/mitt)
### Use
`npm i vue-pubsub`
```typescript
import { createApp } from "vue";
import { PubsubPlugin } from "vue-pubsub";
import App from "./App.vue";
const app = createApp(App);
app.use(PubsubPlugin());
app.mount("#app");
// ...
import { usePubsub } from "vue-pubsub";
const pubsub = usePubsub();
pubsub.on("test", (data) => {
console.log(data);
});
// in other .vue file / setup hook
pubsub.to("test", "Hello World!");
```
### Using with Typescript
You can declare custom channel types by:
```typescript
declare module "vue-pubsub" {
interface Channels {
test: string;
}
}
```
> Vue inject() and provide() do not support generic types in same context. Better suggestions for this are welcome.