Vue3从实例中移除了 $on、$off 和 $once 方法,所以我们如果希望继续使用全局事件总线,要通过第三方的库:
Vue3官方有推荐一些库,例如 mitt 

1 安装mitt库

npm install mitt

2 封装eventBus.js

import mitt from 'mitt';

const emitter = mitt();

export default emitter;

3 使用事件总线工具

3.1 导入emitter

  import emitter from './utils/eventbus';

3.2 触发事件

    emitter.emit("event", {name: "code", age: 18});

3.2 监听事件

  emitter.on("event", (info) => {
        console.log("event:", info);
      });

3.3 移除事件监听

所有监听移除

emitter.all.clear()

 指定监听移除

  function onEvent(){}
  emitter.off("event", onEvent);

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐