前两种方式官方文档十分详尽再也不赘述,只在这里简述一下第三种方式的思路。
由于$on和$emit的事件必须是在一个公共的实例上才能触发。那么咱们能够新建一个Vue实例看成事件总线,达到能够无论组件之间的父子关系,都能经过这个实例通讯的目的vue
import Vue from 'vue' export default new Vue()
import eventBus from './eventBus' //... created () { eventBus.$on('my-event', args => { //... }) }
import eventBus from './eventBus' //... watch: { list(newValue, oldValue) { eventBus.$emit('my-event', newValue) } }