您好,登錄后才能下訂單哦!
這篇文章主要介紹了vue使用keep-alive后從部分頁面進入不緩存怎么解決的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇vue使用keep-alive后從部分頁面進入不緩存怎么解決文章都會有所收獲,下面我們一起來看看吧。
1:當前有頁面A-B-C三個板塊;
2:從頁面C返回頁面B時,B頁面數據之前數據不會被清空(keep-alive),且C頁面攜帶到B頁面的數據緩存(event-bus/vuex);
3:從A-頁面進入B頁面時,B頁面為初始化狀態。
1:借用路由鉤子函數,在進入B頁面時,對當前頁面進行兼容處理;
配置meta屬性和isBack標識,判斷當前頁面是從C頁面返回還是從其他頁面進入,具體配置如下:
{ path: '/B', name: 'B', component: require('@/page/index.vue'), meta: { keepAlive: true, //當前頁面是否緩存,搭配keep-alive使用 isBack: false // 判斷當前頁面是從C頁面返回還是從其他頁面進入,默認從A頁面進入 } },
再B頁面判斷當前頁面跳轉方式,通過beforeRouteEnter(to, from, next),來判斷路由是從哪里來跳轉的,如果是從C跳轉的,則將當前路由對象的meta.isBack設置為true,否則設為false。具體實現如下:
beforeRouteEnter(to, from, next) { if (from.path == "/C") { to.meta.isBack = true; } else { to.meta.isBack = false; } next(); },
從非C頁面進入B頁面時,都應重置當前頁面數據,所以需要在頁面加載之前(即activated),將之前獲取到的數據以及查詢條件清空。
activated()與deactivated()是兩個生命周期鉤子(生命周期函數)。
activated()與deactivated()是路由組件所獨有的兩個生命周期鉤子,用于捕獲路由組件的激活狀態。
activated路由組件被激活時觸發。
deactivated路由組件失活時觸發。
activated() { let that = this; // 第一次和非C頁面進入B頁面時 isBack都為false,即需要重置數據 if (!this.route.meta.isBack) { // 重置數據操作 } this.route.meta.isBack = false; },
關于“vue使用keep-alive后從部分頁面進入不緩存怎么解決”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“vue使用keep-alive后從部分頁面進入不緩存怎么解決”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。