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

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中接收到事件。
在这里插入图片描述


http://www.kler.cn/a/591995.html

相关文章:

  • Zabbix安装(保姆级教程)
  • 学习Python如何高效处理CSV文件的技巧!
  • Docker 和 Docker Compose 的关系
  • 可视化图解算法:链表中倒数(最后)k个结点
  • 使用py-ffmpeg批量合成视频的脚本
  • CentOS7 安装 jdk8(Java安装)
  • Next.js 的渲染体系架构
  • Spring Boot 核心知识点深度详解:自动化配置 (Auto-configuration) - 解锁 Spring Boot 的 “魔法”
  • 【从零开始学习计算机科学】软件工程(三)需求工程
  • 《算法笔记》9.2小节——数据结构专题(2)->二叉树的遍历 问题 B: 二叉树
  • 批量清空 Excel 文档主题、标记、作者、保存时间、总编辑时间元数据
  • 23年蓝桥杯 ———— 阶乘求和
  • rk3588 linux的rootfs.img挂载后通过chroot切换根目录安装应用提示空间不足
  • 一、Redis简介篇
  • 一文梳理清楚Vsync/Choreographer/SurfaceFlinger/Surface/SurfaceHolder/硬件刷新频率关系
  • Springboot是怎么保证WebSocket的链接对象是唯一的
  • 孜然SEO静态页面生成系统V1.0
  • 卷积神经网络 - 卷积层
  • 《基于Spring Boot+Vue的智慧养老系统的设计与实现》开题报告
  • 【鸿蒙】封装日志工具类 ohos.hilog打印日志