vue兄弟組件通訊

全部須要通訊的組件共用一個事件對象。new Vue(),新new一個vue對象,而後全部組件都訪問這個對象,經過這個對象$emit事件,也經過這個對象$on監聽事件。vue

實現一:直接在單文件裏面實例化根Vue的時候,在data裏return一個屬性,值爲new Vue(),例如bus: new Vue()函數

在具體的組件頁面上,直接用this.$root.bus.$emit('eventName')發送事件。this

在另外一個組件頁面的mounted函數裏面,用this.$root.bus.$on('eventName', () => { // 一些要作的事  } )監聽事件。插件

實現二:把共用的事件對象單獨抽成一個bus.js文件,哪一個組件要用到就引用進來,而後$emit或者$on。對象

實現三:抽成bus.js文件後,還能夠做爲Vue的插件。事件

相關文章
相關標籤/搜索