美文网首页
Vue全局事件总线

Vue全局事件总线

作者: itfitness | 来源:发表于2022-07-06 14:42 被阅读0次

添加$bus属性

首先在Vue的prototype原型对象上添加$bus属性,属性的值为当前的Vue对象,作为全局事件调度器,这里我们在beforeCreate钩子函数中添加

import Vue from 'vue'
import App from './App.vue'

Vue.config.productionTip = false

new Vue({
  render: h => h(App),
  beforeCreate() {
    Vue.prototype.$bus = this
  }
}).$mount('#app')

发送事件

下面是定义了一个test事件,进行测试,最后也不要忘了在组件销毁的时候注销事件

<template>
  <div>
    <HelloWorld ref="hello" @test="getMessage"/>
    <button @click="send">发送</button>
  </div>
</template>

<script>
import HelloWorld from './components/HelloWorld.vue'

export default {
  name: 'app',
  components: {
    HelloWorld
  },
  mounted(){
    this.$bus.$on("test",this.getMessage)
  },
  methods:{
      getMessage(msg){
          alert(msg)
      },
      send(){
          this.$bus.$emit("test","全局事件")
      }
  },
  beforeDestroy() {
    this.$bus.$off("test")
  }
}
</script>

<style>

</style>

效果如下


相关文章

  • Vue全局事件总线

    添加$bus属性 首先在Vue的prototype原型对象上添加$bus属性,属性的值为当前的Vue对象,作为全局...

  • antV F2 利用changeSize在windowResiz

    antV f2 windowResize思路:①注册全局总线 提起监听事件;②在app.vue的入口页写下监听事件...

  • vue学习(40)全局事件总线

    思路 首先可以让所有组件访问到尝试1:是不是可以往window身上放一个x?widnow.x=123;虽然其他组件...

  • 22.Vue全局事件总线(GlobalEventBus)

    一种组件间通信的方式,适用于任意组件间通信 安装全局事件总线:new Vue({ ...... beforeCre...

  • 全局事件总线

    全局事件总线 1、一种组件间相互通信的方式,适用于任意组件间通信。 2、安装全局事件总线: new ...

  • 全局事件总线

    1.一种组件间通信方式,适用于任意组件间通信2.安装全局事件总线new Vue({...beforeCreate ...

  • $bus 全局事件总线

    组件之间除了父子这种有关系的,有联系的,可以通过父子组件之间通信来实现交流除了这种父子关系的组件,还有没什么联系的...

  • Vue的事件总线

    事件总线是什么? EventBus 又称为事件总线。在Vue中可以使用 EventBus 来作为沟通桥梁的概念,就...

  • vue-vuex

    事件总线 Vue.prototype.bus = new Vue()console.log(this.bus)子组...

  • vue事件总线

    在看别人项目的时候看到了这样的代码如下: 后来通过百度了解到,这个叫vue事件总线。这样用的原因是,项目不是特别大...

网友评论

      本文标题:Vue全局事件总线

      本文链接:https://www.haomeiwen.com/subject/gbrybrtx.html