首页 > 其他分享 >【Vue2.0学习】—全局事件总线GlobalEventBus(六十一)

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

时间:2022-10-29 11:32:50浏览次数:69  
标签:Vue name bus 总线 GlobalEventBus 六十一 组件 全局 Vue2.0


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

知识回顾:

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

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

全局事件总线(GlobalEventBus)

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

安装全局事件总线:

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

使用事件总线:

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

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

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

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


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


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


标签:Vue,name,bus,总线,GlobalEventBus,六十一,组件,全局,Vue2.0
From: https://blog.51cto.com/u_15703678/5805852

相关文章

  • 【Vue2.0学习】—Todolist案例自定义事件(六十)
    【Vue2.0学习】—Todolist案例自定义事件(六十)......
  • 【Vue2.0学习】—Todolist案例(五十九)
    【Vue2.0学习】—Todolist案例(五十九)组件化编码流程1、实现静态组件:抽取组件,使用组件实现静态效果2、展示动态数据:数据的类型、名称是什么数据保存在哪个组件3、交互—从绑......
  • 【Vue2.0学习】—组件的自定义事件(五十八)
    【Vue2.0学习】—组件的自定义事件(五十八)组件的自定义事件一种组件间通信的方式:适用于子组件—>父组件使用场景:A是父组件,B是子组件,B想给A传数据,那么就要A给B绑定自定义事件,......
  • 【Vue2.0学习】—mixin混入(五十五)
    【Vue2.0学习】—mixin混入(五十五)//该文件是整个项目的入口文件//引入VueimportVuefrom'vue'//引入APP组件,它是所有组件的父组件importAppfrom'./App.vue'//全局引入i......
  • 【Vue2.0学习】—插件(五十六)
    【Vue2.0学习】—插件(五十六)scoped样式作用:让样式在局部生效,防止冲突写法:​​<stylescoped></style>​​......
  • 【Vue2.0学习】—浏览器本地存储(五十七)
    【Vue2.0学习】—浏览器本地存储(五十七)WebStorage​​webstorage​​​是本地存储,存储在客户端,包括​​localStorage和sessionStorage​​。1、存储内容大小一般支持​​5MB......
  • 搭建vue2.0开发环境
    1.安装nodevue的运行是依赖于node的npm的管理工具来实现,下载地址:https://nodejs.org/en/2.查看node版本号打开cmd管理工具,输入node-v命令,查看node版本号,出现版本号说明......
  • vue2.0中svg图片的引用
    1、基础工作都是引用了svg-sprite-loader这个插件  npmisvg-sprite-loader--save2、写一个Svglcon的组件(components/Svglcon),在components目录下新建一个SvgIcon文......
  • 《MiniPRO H750开发指南》第六十一章 UCOSII实验1-任务调度
    六十一章UCOSII实验1-任务调度​前面我们所有的例程都是跑裸机程序,简称裸跑,从本章开始,我们将分3个章节向大家介绍UCOSII(实时多任务操作系统内核)的使用。本章,我们将向大家介......
  • Vue2.0后台项目模板
    后台项目项目模板1.简洁版:https://github.com/PanjiaChen/vue-admin-template2.完整版:https://github.com/PanjiaChen/vue-element-admin下载依赖cnpminstallcnpmi......