关于Vue2的组件间通信

60 阅读1分钟

分为三大类

  1. 父子通信:
  • props/emits:父给子传输数据在组件标签中传入子使用props接收;子给父传递数据,通过emits:父给子传输数据 在组件标签中传入 子使用props接收 ;子给父传递数据,通过emit抛出事件 父监听事件并调用 通过参数接收数据;或父传给子一个函数 子接收并调用该函数时 将要传递的数据当成实参在函数中传递过去 父接收参数
  • ref :在父组件内 给子组件设置ref属性 可操作子组件dom实例内方法
  1. 兄弟/父子/隔代通信:
  • EventBus(emit/emit/on):全局事件总线 在Vue中有一个空的实例 用来监听事件和触发事件 从而实现父子 兄弟 隔代通信
  • Vuex:核心就是store(仓库) store内存储着应用的状态 如果要更改状态 只有一个途径 就是调用commit函数从而提交mutation请求 达到改变状态的目的 并且store内的状态是响应式的 状态一旦更新 随之相关的内容也会高效更新
  1. 隔代通信:
  • provide+inject:父组件通过provide提供数据 子组件通过reject把父组件提供的数据进行注入 使用场景主要是 子组件获取上级组件的状态