import 'Vue' from 'vue'
export const EventBus = new Vue()
const EventBus = new Vue()
Object.defineProperties(Vue.prototype, {
$bus:{
get:function(){
return EventBus
}
}
})
<template>
<div>
a组件
<Button @click="send">send</Button>
</div>
</template>
<script>
import { EventBus } from '../util/event-bus'
export default {
data() {
return {
msg:'hellow,我是a组件'
}
},
methods:{
send() {
EventBus.$emit('msg',this.msg)
}
}
}
</script>
<template>
<div>
b组件
{{ msg }}
</div>
</template>
<script>
import { EventBus } from '../util/event-bus'
export default {
data() {
return {
msg:''
}
},
mounted() {
EventBus.$on('msg',msg => {
console.log(msg);
this.msg = msg
})
},
beforeDestroy() {
EventBus.$off('msg',{});
}
}
</script>
|