【Vue2.0学习】—全局事件总线GlobalEventBus(六十一)

简介: 【Vue2.0学习】—全局事件总线GlobalEventBus(六十一)

知识回顾:

全局事件总线(GlobalEventBus)

  • 一种组件间通信的方式,适用于任意组件间通信

安装全局事件总线:

使用事件总线:

  • 接收数据:A组件想接收数据,则在A组件中给$bus绑定自定义事件,事件的回调留在A组件自身

  • 最好在beforeDestroy钩子中,用 $off去解绑当前组件所用到的事件

School.vue

<template>
  <div class="demo">
    <h2>学校名称:{{name}}</h2>
    <h2>学校地址:{{address}}</h2>
    <!-- 
        全局事件总线(GlobalEventBus)
        一种组件间通信的方式,适用于任意组件间通信
        安装全局事件总线
     -->
  </div>
</template>
<script>
export default {
    name:'School',
    data(){
        return {
            name:'B站大学',
            address:'上海'
        }
    },
    mounted() {
        this.$bus.$on('hello',(data)=>{
            console.log('我是School组件,收到了数据',data)
        })
    },
    beforeDestroy(){
        this.$bus.$off('hello')
    }
}
</script>
<style scoped>
.demo{
    background-color: orange;
}
</style>

Student.vue

<template>
  <div class="box">
    <h2>学生姓名:{{name}}</h2>
    <h2>学生年龄:{{age}}</h2>
    <button @click="sendStudentName">把学生名给School组件</button>
 </div>
</template>
<script>
export default {
    name:'Student',
    data(){
        return{
            name:'王同学',
            age:20
        }
    },
  methods:{
    sendStudentName(){
        this.$bus.$emit('hello',666)
    }
  }
}
</script>
<style scoped>
.box{
    background-color: skyblue;
}
</style>

main.js

//该文件是整个项目的入口文件
//引入Vue
import Vue from 'vue'
//引入APP组件,它是所有组件的父组件
import App from './App.vue'
// 关闭Vue生产提示
Vue.config.productionTip = false
//将APP组件放入容器中
new Vue({
    render: h => h(App),
    beforeCreate() {
        //安装全局总线 
        Vue.prototype.$bus = this
    }
}).$mount('#app')


相关文章
|
26天前
|
缓存 JavaScript
vue2知识点:全局事件总线(GlobalEventBus)
vue2知识点:全局事件总线(GlobalEventBus)
71 2
vue2知识点:全局事件总线(GlobalEventBus)
|
1月前
|
JavaScript 调度
Vue事件总线(EventBus)使用指南:详细解析与实战应用
Vue事件总线(EventBus)使用指南:详细解析与实战应用
57 1
|
3月前
|
JavaScript
Vue学习之--------全局事件总线(2022/8/22)
这篇文章介绍了Vue中全局事件总线(GlobalEventBus)的概念和使用方法,它允许不同组件之间进行通信。文章通过图解和代码实例详细解释了如何安装全局事件总线、在组件中接收和提供数据,以及如何在组件销毁前解绑事件,以避免潜在的内存泄漏问题。
Vue学习之--------全局事件总线(2022/8/22)
|
6月前
|
JavaScript
解释 Vue 的事件总线和 emits 属性。
解释 Vue 的事件总线和 emits 属性。
76 3
|
6月前
|
JavaScript
在Vue中,如何使用事件总线来传递数据和触发事件?
在Vue中,如何使用事件总线来传递数据和触发事件?
96 0
|
6月前
|
JavaScript 程序员
Vue中的全局事件总线是什么?如何使用?
Vue中的全局事件总线是什么?如何使用?
78 0
|
6月前
|
JavaScript 前端开发 API
从入门到项目实战 - VUE组件跨通信:vue2 与 vue3 中实现全局事件总线
从入门到项目实战 - VUE组件跨通信:vue2 与 vue3 中实现全局事件总线
384 0
|
11月前
|
JavaScript
Vue全局事件总线(任意组件间通信)
Vue全局事件总线(任意组件间通信)
|
11月前
【Vue2.0】— 全局事件总线GlobalEventBus(十九)
【Vue2.0】— 全局事件总线GlobalEventBus(十九)
|
JavaScript
Vue(Vue2+Vue3)——44.全局事件总线、45.TodoList案例_事件总线
Vue(Vue2+Vue3)——44.全局事件总线、45.TodoList案例_事件总线