vue3安装全局事件总线
时间: 2023-09-12 16:13:16 浏览: 121
vue-geb-使用Observables的全局事件总线。-Vue.js开发
在 Vue 3 中,不再支持全局事件总线的方式,而是推荐使用新的 Composition API 来实现类似的功能。
你可以通过创建一个独立的 Vue 实例作为事件总线,并在组件之间共享。以下是一个简单的示例:
首先,创建一个 EventBus.js 文件,并在其中定义一个新的 Vue 实例作为事件总线:
```javascript
import { createApp } from 'vue';
const app = createApp({});
const eventBus = app.config.globalProperties.$eventBus || app;
export default eventBus;
```
然后,在你的项目中,可以通过引入 EventBus.js 文件来获取事件总线实例,并使用它来触发和监听事件。
例如,在一个组件中触发事件:
```javascript
import eventBus from './EventBus';
eventBus.$emit('eventName', payload); // 触发名为 'eventName' 的事件,并传递 payload 数据
```
在另一个组件中监听事件:
```javascript
import eventBus from './EventBus';
eventBus.$on('eventName', (payload) => {
// 处理接收到的事件和数据
});
```
这样,你就可以在不同的组件之间通过事件总线进行通信了。
需要注意的是,由于 Vue 3 中抛弃了 Vue.prototype,所以我们使用了 `app.config.globalProperties.$eventBus` 来访问事件总线实例。如果你想要其他名称的全局属性,可以在创建 Vue 实例时修改。另外,也可以根据自己的需求来扩展事件总线的功能。
阅读全文