【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')


相关文章
|
2月前
|
JavaScript
在Vue中,如何使用事件总线来传递数据和触发事件?
在Vue中,如何使用事件总线来传递数据和触发事件?
16 0
|
2月前
|
JavaScript
解释 Vue 的事件总线和 emits 属性。
解释 Vue 的事件总线和 emits 属性。
24 3
|
3月前
|
JavaScript 程序员
Vue中的全局事件总线是什么?如何使用?
Vue中的全局事件总线是什么?如何使用?
18 0
|
4月前
|
JavaScript 前端开发 API
从入门到项目实战 - VUE组件跨通信:vue2 与 vue3 中实现全局事件总线
从入门到项目实战 - VUE组件跨通信:vue2 与 vue3 中实现全局事件总线
77 0
|
5月前
|
JavaScript
Vue全局事件总线(任意组件间通信)
Vue全局事件总线(任意组件间通信)
|
5月前
【Vue2.0】— 全局事件总线GlobalEventBus(十九)
【Vue2.0】— 全局事件总线GlobalEventBus(十九)
|
9月前
|
JavaScript
[Vue]全局事件总线
[Vue]全局事件总线
|
6天前
|
资源调度 JavaScript 前端开发
【vue】vue中的路由vue-router,vue-cli脚手架详细使用教程
【vue】vue中的路由vue-router,vue-cli脚手架详细使用教程
|
6天前
|
JavaScript
【vue】深入探讨vue中组件间多种传值方式
【vue】深入探讨vue中组件间多种传值方式
【vue】深入探讨vue中组件间多种传值方式
|
6天前
|
JavaScript 前端开发
vue组件化开发流程梳理,拿来即用
vue组件化开发流程梳理,拿来即用