Vue - 全局事件总线
全局事件总线
一种组件间的通信方式,适用于任意组件间通信。
使用方式#
1.安装全局事件总线
new Vue({
render: h => h(App),
beforeCreate() {
Vue.prototype.$bus = this
}
}).$mount('#app')
2.使用事件总线
接收数据:A组件想接收数据,则在A组件中给$bus绑定自定义事件,事件的回调留在A组件身上。
<template>
<div>
<h2>{{receiveName}}</h2>
</div>
</template>
<script>
export default {
name: "School",
data(){
return{
receiveName:""
}
},
methods:{
rec(name){
console.log("准备接收数据");
console.log("接收到学生姓名"+name);
this.receiveName = name
}
},
mounted() {
this.$bus.$on("receive",this.rec)
}
}
</script>
提供数据:this.$bus.$emit('自定义事件名',数据)
<template>
<div>
<button @click="sendName">发送学生信息给学校</button>
</div>
</template>
<script>
export default {
name: "Student",
data(){
return{
name:"张三"
}
},
methods:{
sendName(){
this.$bus.$emit("receive",this.name)
}
}
}
</script>
最好在beforeDestory钩子中,用$off去解绑当前组件所用到的事件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了