您好,登錄后才能下訂單哦!
這篇文章主要介紹了vue的keep-alive中如何使用EventBus,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
1.keep-alive組件
keep-alive是Vue提供的一個抽象組件,用來對組件進行緩存,從而節省性能,由于是一個抽象組件,所以在頁面渲染完畢后不會被渲染成一個DOM元素。但是對于展示型頁面比較好用,表單類頁面也會將所填數據保存起來,對于那種表單沒提交又需要保存所填數據的場景非常實用。
keep-alive所緩存的頁面只會執行一次created和mounted,也就是在第一次進入才會執行。但是又會多兩個生命周期,分別是activated、deactivated,activated在每次進入執行而deactivated在每次離開前執行。 當然有些頁面不需要緩存,就要進行一些處理,這里就不多講了,因為估計大家都知道(不知道百度去...)。
2.EventBus(事件總線)
EventBus用于實現組件之間的數據通訊,使用起來非常之簡單。只需要在main.js中加入以下代碼:
Vue.prototype.$eventBus = new Vue();
上面代碼就創建了一個全局EventBus,其實就是一個vue實例。
這樣我們就可以在各個頁面中使用了。
在頁面中使用 $emit 方法就可以觸發事件,然后組件中使用 $on 方法就可以監聽對應事件,這個和組件之間傳值是一樣的。不過這個可以在非父子組件中傳遞狀態,和vuex差不多。當然這種方法在簡單應用中可以使用,復雜的應用應該使用 vuex ,這樣方便管理和維護。
this.$eventBus.$emit('msg',data);// 觸發事件 this.$eventBus.$on('msg',(data)=>{}) // 監聽事件
3.組合使用
這兩個我感覺很配,當我們使用keep-alive
緩存了頁面組件,我們需要在A面來觸發B頁面的列表刷新或其他方法時,這時候使用EventBus就非常方便,其他方法也可以,比如說使用vuex,但是此時就沒有直接使用EventBus方便快捷了。 當我們在頁面中使用了 this.$eventBus.$on
去監聽一個事件,只要頁面被緩存,就可以監聽到其他頁面觸發的事件。這樣我們就可以減少一些不必要的請求,而且在需要更新的時候去更新,也可以做一些其他的操作,簡直美滋滋。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“vue的keep-alive中如何使用EventBus”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。