在 Vue 3 中,由于 API 的变化,EventBus
(或称为事件总线)的使用方式与 Vue 2 有所不同。在 Vue 2 中,我们通常会创建一个 Vue 实例作为事件总线,然后在组件中通过 $on
、$emit
和 $off
来监听和触发事件。然而,在 Vue 3 中,这些方法已经从 Vue 实例中移除,因此我们需要寻找其他解决方案。
一种常用的替代方案是使用第三方库,如 mitt
或 tiny-emitter
。这些库提供了轻量级的事件触发和监听功能,可以在 Vue 3 的组件之间传递事件。
以下是一个使用 mitt
库在 Vue 3 中实现事件总线的示例:
首先,你需要安装 mitt
库。你可以使用 npm 或 yarn 来安装它: