组件之间的通信主要分为:
1、父子组件之间通信
2、非父子组件之间的通信(兄弟组件、隔代关系组件等)
八种通信方式:
1、props 、$emit
2、$children、$parent
3、ref
4、provide 、inject
5、Vuex
6、$attrs 与 $listenters
7、eventBus
8、localStorage 、sessionStorage
总的来说,常见使用场景可以分为三类:
1、父子组件通信: props / $emit; $parent / $children; provide / inject; ref; $attrs / $listeners
2、兄弟组件通信: eventBus; vuex
3、跨级通信: eventBus; Vuex; provide / inject; $attrs / $listeners
PS:
以上参考于 vue的八种组件通信方式 ,作者写的很详细也很全面,这里不再赘述,感兴趣的可以戳链接看原文哦~另外,这篇文章 vue组件间通信六种方式(完整版) 写的也不错~