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

Vue.js 提供了一个事件系统,允许组件之间通过自定义事件进行通信

这个系统主要包括两个方法:

  1. $emit:用于触发事件。
  2. $on:用于监听事件。

main.js上面

  el: '#app',
  data: {
    eventHandle: {
      // 初始化为空对象
    }
  },

使用emit触发事件

this.$root.eventHandle.$emit('custom-event', { message: 'Hello from another component!' });

使用on来监听事件

 created() {
    // 在 created 生命周期钩子中监听自定义事件
    this.$root.eventHandle.$on('custom-event', this.handleCustomEvent);
  },
  methods: {
    handleCustomEvent(payload) {
      console.log('Custom event received:', payload);
    }
  }
}); 

也可以简写上面的,直接把接收的函数写在created里面

this.$root.eventHandle.$on('custom-event', (payload)=>{

       console.log(payload.message)//打印的内容就是Hello from another component!

});

 注意事项

  1. 内存泄漏:在使用 $on 监听事件时,需要注意在组件销毁时移除监听器,以避免内存泄漏。可以使用 $off 方法来移除监听器。
beforeDestroy() {
  this.$root.eventHandle.$off('custom-event');
}
  1. 事件命名:事件名称应该遵循一定的命名规范,通常使用短横线分隔的小写字母(kebab-case),以避免与原生事件冲突。

总结

this.$root.eventHandle.$on 是 Vue.js 中用于在根元素上监听自定义事件的方法。通过合理使用这个方法,可以实现组件之间的通信和事件管理。在使用时,需要注意内存泄漏和事件命名规范。


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

相关文章:

  • springboot中使用gdal将表中的空间数据转shapefile文件
  • 汽车IVI中控开发入门及进阶(46):FFmpeg
  • ffmpeg翻页转场动效的安装及使用
  • Chrome 浏览器原生功能截长屏
  • Nuc9 Truenas 和 Macmini4组雷电网桥 上传速度异常 1Mbp/s 解决
  • 成方金融科技后端部分笔试题 - 解析
  • golang安装,常用框架安装,记忆点
  • ChatGPT o1与GPT-4o、Claude 3.5 Sonnet和Gemini 1.5 Pro的比较
  • 【Winform使用DataGridView实现表格数据的添加,编辑、删除、分页功能】
  • 【Go语言】| 第1课:Golang安装+环境配置+Goland下载
  • 基于Python的自然语言处理系列(50):Soft Prompt 实现
  • SAP 生产工单 bom组件 打删除标记
  • Spring Boot框架下的信息学科平台系统开发实战
  • SQL 常用更新操作
  • platform device的名字是怎么生成的?
  • 滑动窗口习题篇(下)
  • FreeRTOS学习8——开启任务调度器API函数简介
  • 【运维项目经历|046】Jenkins自动化部署与持续集成优化项目
  • MySQL秘密武器:索引与事务
  • 【51单片机】DS1302实时时钟
  • RabbitMQ最全教程-Part1(基础使用)
  • 活着就好20241106
  • 人脸检测之MTCNN算法网络结构
  • VUE+Vite之环境文件配置及使用环境变量
  • 全面解析:区块链技术及其应用
  • 轴承故障全家桶更新 | 基于时频图像的分类算法