徐徐爱coding
  • 首页
  • 爱情买卖
  • 导航
  • 私语
  • 友情链接
  • 关于
    关于本站
    知识库
    弹钢琴
徐徐爱coding

徐徐爱coding

徐徐爱coding是一个个人博客站点,记录编程经历的点点滴滴,分享自己的所见与所得,坚持自己的初心,践行自己的梦想生活不是等着暴风雨过去,而是学会在风雨中跳舞!

Copyright © 2023 徐徐爱coding All Rights Reserved.
陕公网安备61019602000456陕ICP备2023007787号-2

网站已稳定运行

Vue 利用provide实现事件bus

Vue 利用provide实现事件bus

徐徐
前端
#Vue
0 热度0 评论0 点赞
发布于2024-08-28 17:00:07
🌺前言
Vue 利用provide实现事件bus,不用依赖其他插件

typescript
import { inject } from "vue";
export interface EventBus {
  $on(event: string, callback: (...args: any[]) => void): void;
  $emit(event: string, ...args: any[]): void;
}

const createEventBus = () => {
  const events: Record<string, Function[]> = {};

  const $on = (event: string, callback: (...args: any[]) => void) => {
    if (!events[event]) {
      events[event] = [];
    }
    events[event].push(callback);
  };

  const $emit = (event: string, ...args: any[]) => {
    if (events[event]) {
      events[event].forEach((callback) => callback(...args));
    }
  };

  return { $on, $emit };
};

export function provideEventBus(app: any) {
  const eventBus:EventBus = createEventBus();
  app.provide("eventBus", eventBus);
}

export function useEventBusInject() {
  return inject<EventBus>("eventBus");
}
文章最后更新于 2024-08-28 17:00:07
作者:徐徐
版权声明:转载请注明文章出处
留言
暂无数据

~~空空如也