全局事件总线是一种用于组件间通信的模式,这种方式特别适用于那些没有父子关系的组件间的通信。
首先,引入mitt插件
import mitt from 'mitt';
const $bus =mitt();
//对外暴露
export default $bus;
其次,在需要通信的两个组件之间,分别引入$bus对象,使用 emit
来触发事件,使用 on
来监听事件。
需要进行监听事件的组件,当然要引入组合式API函数
//他的作用是组件挂载完毕后,绑定一个事件,接受将来组件之间传递的数据
import {onMounted} from 'vue';
onMounted(()=>{
//第一个参数为事件类型,第二个参数为事件的回调
$bus.on('car',(car)=>{
console.log(car);
)}
}
需要进行触发事件的组件,
(可以绑定按钮)
$bus.emit('car',{car:"法拉利"})