前兩種方式官方文檔十分詳盡再也不贅述,只在這裏簡述一下第三種方式的思路。
由於$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) } }