vue中组件通信的几种方式
1、父子组件通信
父传子:props 在子组件定义时,使用props 声明所能接收到的属性,在父组件中使用子组件时,传递标签中的属性值即可
子传父:利用事件的方式传递,父组件中使用子组件时,使用v-on绑定一个自定义时间,事件处理程序通常为在父组件中定义的某个方法,这个方法接收相应的参数,在子组件需要传递数据的位置使用$emit触发在父组件中绑定的时间并传递相应的数据
2、跨组件跨层级通信
a.转换为父子组件的关系
b.使用event-bus :事件总线
-
event-bus是借助于vue对象实例的$on() 和 $emit() 来实现数据通信
-
使用:
首先创建一个全局vue实例(空的vue实例—不传递选项对象)
在需要接受数据的组件中调用$on()实现事件注册
在需要传递数据的组件中调用$emit() 实现事件触发