vue3-global-eventbus

vue3版本eventBus全局事件总线
310 1
Install
npm install vue3-global-eventbus
Latest Version:0.1.3
Vue:3
License:MIT
Last Updated:Jun 23, 2023
Links: GitHub  ·  npm
Maintainer: jackiehao

vue3-global-eventbus vue3版本eventBus全局事件总线

npm 组件包地址

安装

npm i vue3-global-eventbus

使配置

入口文件默认是main.js
// main.js
import { createApp } from 'vue'
import App from './App.vue'
// 1、引入事件类
// 自己编写的或者mitt皆可
import EventBus from 'vue3-global-eventbus'
// 或者:import EventBus from 'mitt'
const $bus = new EventBus()

// 2、挂载
// 1.使用provide提供
app.provide('$bus', $bus)
// 2.挂载到this上
app.config.globalProperties.$bus = $bus

组件中引入并使用

1、在created中使用
// Button.vue
export default {
  created() {
      this.$bus.emit('ButtonCreated')
  }
}

2、在setup中使用

注意: 因为在setup中无法访问到应用实例(this),如果你需要在setup中使用eventBus,则需要通过provide/inject方式引入

// Button.vue
import { inject } from 'vue'
export default {
  setup() {
      const $bus = inject('$bus')
      $bus.emit('ButtonSetup')
  }
}

不过也能看到在挂载的时候需要多写两行代码,使用的时候,每个组件在setup内都要引入inject函数,并且初始化一次


-----------------------------------------------------------------------
<template>
  <div class="home">
    <button @click="sk">触发事件</button>
  </div>
</template>

<script setup>
import { reactive, inject,onMounted,onBeforeUnmount } from "vue";
const $bus = inject("$bus");

const sk=()=>{
  $bus.emit("ButtonSetup",123);
}

onMounted(() => {
  console.log(`the component is now mounted.`)
  $bus.on('ButtonSetup',(h)=>{
    console.log('this ButtonSetup',h);
  })
})

onBeforeUnmount(()=>{
  console.log('the component is now un-mounted.')
  $bus.off('ButtonSetup')
})

</script>

Related Packages

hy-event-store

A zero-dependency event bus and global state store for Vue, React, Mini Programs...

1,342 411
vue-eventer

Vue.js tool known as `event bus` or `even hub` usefull for small projects.

28,055 1
@mundoit-lib/plugin-vue-event

Plugin de Vue 3 con un bus de eventos global basado en mitt: $events, la opción...

997 0
vue-fn

A Vue 3 reactive function utility library providing domain-driven design pattern...

3,123 0

Version History

Version Released Vue License
0.1.3 ^3.2.13 MIT
0.1.2 MIT
0.1.1 MIT
0.1.0 ^3.2.13 MIT