# props和$emit

  • 父组件向子组件传递数据是通过prop传递的
  • 子组件传递数据给父组件是通过$emit触发事件来做到的。

# $attrs和$listeners

  • 能实现祖孙组件通信

# 中央事件总线eventBus $emit $on

上面两种方式处理的都是父子组件之间的数据传递,而如果两个组件不是父子关系呢?
这种情况下可以使用中央事件总线的方式。

  • 新建一个空的Vue事件bus对象,然后通过bus.$emit触发事件,bus.$on监听触发的事件

# provide和inject

  • 父组件中通过provider来提供变量,然后在子组件中通过inject来注入变量。
    不论子组件有多深,只要调用了inject那么就可以注入provider中的数据。
    而不是局限于只能从当前父组件的prop属性来获取数据,只要在父组件的生命周期内,子组件都可以调用

# $parent 和 $children 与 ref

  • 直接得到组件实例,无法在跨级或兄弟间通信

# 6、vuex

  • vuex处理组件之间的数据交互