一、父传子:
通过props属性

父组件

子组件
二、子传父:
通过$emit触发事件

子组件

父组件
三、非父子:
1. provide / inject(传递 / 接收)- options Api写法
App.vue --> Home.vue --> HomeContent.vue


2. provide / inject(传递 / 接收)- composition Api写法
tip: provide传递参数可使用readonly包裹,防止子孙组件控制父组件。


3.mitt全局事件总线
3.1 安装库:npm install mitt
3.2 引入:import mitt from "mitt"
3.3 定义:const emitter = mitt()

3.4 使用:
3.4.1 发送自定义事件:emitter.emit("why", { name: "why o" })
3.4.2 监听单个自定义事件(info:接收参数): emitter.on("why", (info)=>{})
3.4.3 监听所有自定义事件(type:监听事件 info:接收参数): emitter.on("*", (type, info) => {})
3.4.4 取消监听单个自定义事件(onFoo:自定义事件的回调): emitter.off('why', onFoo)
3.4.5 取消监听所有自定义事件(info:接收参数): emitter.all.clear()

