不再自己写event bus了,依托于rxjs的hot observable,挂载一个全局属性,作为事件总线使用
1.首先在main.js中
import { createApp } from 'vue'
import App from './App.vue'
import {BehaviorSubject} from "rxjs"
const app = createApp(App);
app.config.globalProperties.$eventBus = new BehaviorSubject({});
app.mount('#app')
2.完成发布和订阅
import {getCurrentInstance} from "vue"
const { proxy } = getCurrentInstance();
...
//在需要接收值的组件中订阅:
proxy.$eventBus.subscribe((res)=>{
console.log("--res--",res);
})
//在需要发送值的组件中发送
proxy.$eventBus.next("123");