1、组件通信常用方式有以下8种:
- props
- on
- parent
- listeners
- ref
- $root
- eventbus
- vuex
其中 listeners $on \ eventbus vue3中已经删掉了
- $children废弃:使用ref\refs来获取子组件
- attrs中,包括class和style属性也在里面了
- eventbus:创建实例开销大,选props+$emit,provide+inject,或者观察者模式引用第三方库或实现一个
- 根据组件之间关系讨论组件通信最为清晰有效
- ⽗⼦组件 props / parent / ref / $attrs
- 兄弟组件 root / eventbus / vuex
- 跨层级关系 eventbus / vuex / provide + inject