vue中eventBus的使用

时光总嘲笑我的痴心妄想 提交于 2019-12-09 16:06:08

使用场景:
1、兄弟组件的通信,父子组件的通信
2、不同路由的通信

针对兄弟组件的通信,父子组件的通信
新建bus.js文件

import Vue from 'vue'
var bus = new Vue()
export default bus

在需要通信的组件中引入bus.js,一个组件触发事件,另一个组件监听事件

 import Bus from "@/assets/js/bus.js"
子组件
    testClick(){
        alert("test")
        Bus.$emit("message","hiinew")
    },
父组件
  mounted(){
    var _this = this
    Bus.$on("message",function(res){
     _this.message = res
    })
  }    

针对不同路由的通信

需要在A组件销毁前触发事件
 beforeDestroy () {
   Bus.$emit("message","hii") 
 },
 在B组件created中接收事件
  created () {
     var _this = this     
     Bus.$on("message",function(res){
       console.log(res+"123")      
       _this.message = res
    })  
 },
 并且在B组件的销毁前解除监听 避免重复监听
  beforeDestroy () {
   Bus.$off("message")  
 },

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!