provide/inject父传子孙
在Vue2.2.0之后,Vue提供了provide/inject选项
父组件提供数据:
子孙组件inject接收直接使用:
使用全局事件总线mitt库,兄弟组件传递
vue3舍弃了EventBus,但是官方推荐一个mitt库使用事件总线
npm install mitt
在utils下创建eventbus.js配置文件
// eventbus.js
import mitt from "mitt"
const emitter = mitt()
export default emitter
// vue文件
import emitter from "../utils/eventbus"
// 通过emit发送事件
emitter.emit("getInfo", {
name:"张三", age:18
})
// 通过on接收事件
created(){
emitter.on("getInfo",(info)=>{
console.log('info: ', info);
})
// 这里*是监听所有事件,type为事件名
emitter.on("*",(type,info)=>{
console.log('info: ',type, info);
})
}