1. 程式人生 > >vue兄弟組件通信

vue兄弟組件通信

data 實例 插件 () ret 監聽 通信 頁面 例如

所有需要通信的組件共用一個事件對象。new Vue(),新new一個vue對象,然後所有組件都訪問這個對象,通過這個對象$emit事件,也通過這個對象$on監聽事件。

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

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

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

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

實現三:抽成bus.js文件後,還可以作為Vue的插件。

vue兄弟組件通信