Vue的组件通信

137 阅读1分钟

Vue中涉及到的组件通信无非如下几种

  • 父子,子父
  • 跨级(祖孙)
  • 兄弟通信

通信方式总结如下

  • 简单粗暴的$ref$parent, $children 拿到组件实例来获取组件实例来进行通信
  • 基于发布订阅的 $on $emit ,子组件触发事件,父组件监听
  • vue2.2 提供的api inject provide
  • vue1.x提供的 broadcastdispatch,2.x的版本移除了,但是可以自己实现,主要用来跨级通信,可以跨多级;主要也是利用emit和on的思想
  • $attrs$listeners 用在父组件传递数据给子组件或者孙组件,主要是获取非props,class,style的属性
  • eventBus 也是基于发布订阅
  • vuex全局数据仓库

根据需要实现的业务不同,可以采用不同的通讯方式