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

简介: 代码如下

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

知识回顾:

2345_image_file_copy_9.jpg

2345_image_file_copy_10.jpg

全局事件总线(GlobalEventBus)

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

安装全局事件总线:

2345_image_file_copy_11.jpg

使用事件总线:

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

2345_image_file_copy_12.jpg

  • 最好在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')

2345_image_file_copy_16.jpg

2345_image_file_copy_14.jpg

2345_image_file_copy_15.jpg


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