什么順序不順序的。。
先來說說非父子組件通信。
首先,我們先來了解下vue中的
1.$emit 觸發當前實例上的事件,附加參數都會傳給監聽器回調。
2.$on 監聽當前實例上的自定義事件。事件可以由vm.$emit
觸發。回調函數會接收所有傳入事件觸發函數的額外參數。
基礎知識准備好了,下面,我們就來實現非父子組件之間是怎樣通信的:
第一步,我們需要新建一個js文件,用來創建一個Vue實例並暴露出去
創建一個事件中心,相當於中轉站,可以用它來傳遞事件和接收事件
假如,我們想要Home組件傳遞自身的msg屬性給News組件,並在News組件中展示出來。
首先,需要在Home組件中導入我們剛創建的VueEvent
Home 組件 代碼 如圖所示
創建一個按鈕並設置事件
在NewsEmit事件中,通過VueEvent.$emit("to_news",this.msg) 將 to_news 事件及數據一並發出
News 組件 代碼 如圖所示
News 組件中同樣需要引入 VueEvent
mounted 是vue的生命周期函數中的其中一個,表示,頁面加載完畢執行。
通過 $on 接收 事件,及數據,並賦值給msg,展示到視圖中。
結果如圖所示:
點擊按鈕,數據展示。
未完,待續