当前位置: 首页 > news >正文

vue中js简单创建一个事件中心/中间件/eventBus

vue中js简单创建一个事件中心/中间件/eventBus

目录结构如下:
lu
eventBus.js

class eventBus {
  constructor() {
    this.events = {};
  }

  // 监听事件
  on(event, callback) {
    if (!this.events[event]) {
      this.events[event] = [];
    }
    this.events[event].push(callback);
  }

  // 发射事件
  emit(event, data) {
    if (this.events[event]) {
      this.events[event].forEach((callback) => {
        callback(data);
      });
    }
  }
}

export default new eventBus();

test.vue

<template>
  <div @click="onClick">test_1</div>
</template>

<script>
import eventBus from '@/tools/eventBus.js'

export default {
  name: 'test_1',
  methods: {
    onClick() {
      eventBus.emit('test', '事件1的参数')
      eventBus.emit('test2', {
        name: 'xingyue',
        age: 18
      })
    }
  }
}
</script>

<style>

</style>

App.vue

<template>
  <test />
</template>

<script>
import test from './view/test.vue'
import eventBus from './tools/eventBus.js'

export default {
  name: 'App',
  components: {
    test,
  },
  mounted() {
    this.test();
    this.test2();
  },
  methods: {
    test() {
      eventBus.on('test', (data) => {
        console.log('首页接收test:', data)
      })
    },
    test2() {
      eventBus.on('test2', (e) => {
        console.log('首页接收test2:', e)
      } )
    }
  }
}
</script>

<style>

</style>

点击触发事件后在app.vue中接收到事件。
在这里插入图片描述

相关文章:

  • P1591 阶乘数码
  • BFS,DFS带图详解+蓝桥杯算法题+经典例题
  • 如何在前端发版时实现向客户端推送版本更新消息
  • Java Date 判断两个Date范围在第几季度
  • 使用 Path 对象来定义路径
  • 在Vue3中使用Echarts的示例
  • 用户行为路径分析(Google Analytics数据挖掘)
  • Linux系统移植篇(十一)Linux 内核启动流程
  • 通过Continue调用Deepseek API keys,搭建AI代码助手
  • MySQL程序
  • WPF CommunityToolkit.MVVM库的简单使用
  • vue3之写一个aichat ----vite.config.js
  • 路由器安全研究|D- Link DIR-823G v1.02 B05 复现与利用思路
  • 从零搭建 Vue 3 + Element Plus 项目实战指南
  • WPF跨平台开发探讨:借助相关技术实现多平台应用
  • mysql学习-常用sql语句
  • 解决SpringCloud整合Nacos启动报java.lang.IllegalArgumentException: illegal dataId
  • 设计C语言的单片机接口
  • Springdoc 全部注解一文解释清楚
  • Python的Pytest测试框架(1)
  • 最新研究:基因编辑治疗晚期胃肠道癌显成效
  • 上海虹桥机场至北京首都机场快线试运行跨航司自愿签转服务
  • 女租客欠租后失联,房东开门后无处下脚:40平公寓变垃圾场
  • 特朗普关税风暴中的“稳”与“变”:新加坡国会选举观察
  • 五一假期首日,上海外滩客流超55万人次
  • 特朗普宣布提名迈克·沃尔兹为下一任美国驻联合国大使