vue 使某個組件不被 keep-alive 緩存的方法
提出問題
最近在做項目發(fā)現(xiàn)一個問題,當(dāng)我使用了 keep-alive 標(biāo)簽后,進(jìn)入了某個路由進(jìn)行一系列操作,再點(diǎn)擊瀏覽器后退,再次進(jìn)入剛才的路由,頁面被操作的數(shù)據(jù)沒有初始化!
分析問題
這是因為 keep-alive 將路由頁面緩存,所以該路由沒有完成整個生命周期,沒有 destroyed,因此重新進(jìn)入也沒有觸發(fā)其他生命周期鉤子,如 created 等。
解決問題
(1). 查看官方文檔
當(dāng)組件在 keep-alive 內(nèi)被切換,它的 activated 和 deactivated 這兩個生命周期鉤子函數(shù)將會被對應(yīng)執(zhí)行。
include - 字符串或正則表達(dá)式。只有匹配的組件會被緩存。
exclude - 字符串或正則表達(dá)式。任何匹配的組件都不會被緩存。
<!-- 逗號分隔字符串 --> <keep-alive include="a,b"> <component :is="view"></component> </keep-alive> <!-- 正則表達(dá)式 (使用 `v-bind`) --> <keep-alive :include="/a|b/"> <component :is="view"></component> </keep-alive> <!-- 數(shù)組 (使用 `v-bind`) --> <keep-alive :include="['a', 'b']"> <component :is="view"></component> </keep-alive>
匹配首先檢查組件自身的 name 選項,如果 name 選項不可用,則匹配它的局部注冊名稱 (父組件 components 選項的鍵值)。匿名組件不能被匹配。
(2). 監(jiān)聽路由變化
使用 watch 監(jiān)聽路由變化,但是我發(fā)現(xiàn)監(jiān)聽路由只有在組件被 keep-alive 包裹時才生效,未包裹時不生效,原因不明,理解的小伙伴請留言告訴我!
watch: { '$route' (to, from) { // 對路由變化作出響應(yīng)... } }
beforeRouteUpdate 這個鉤子目前我發(fā)現(xiàn)還不能用,不知道哪里出錯。
beforeRouteUpdate (to, from, next) { // react to route changes... // don't forget to call next() }
以上這篇vue 使某個組件不被 keep-alive 緩存的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- vue里如何主動銷毀keep-alive緩存的組件
- vuex + keep-alive實現(xiàn)tab標(biāo)簽頁面緩存功能
- vue使用keep-alive實現(xiàn)數(shù)據(jù)緩存不刷新
- vue中keep-alive,include的緩存問題
- keep-alive不能緩存多層級路由菜單問題解決
- vue項目優(yōu)化之通過keep-alive數(shù)據(jù)緩存的方法
- 詳解keep-alive + vuex 讓緩存的頁面靈活起來
- vue keep-alive列表頁緩存 詳情頁返回上一頁不刷新,定位到之前位置
- 深入理解與使用keep-alive(配合router-view緩存整個路由頁面)
- vue使用keep-alive后清除緩存的方法
相關(guān)文章
vue.js 中使用(...)運(yùn)算符報錯的解決方法
這篇文章主要介紹了vue.js 中使用(...)運(yùn)算符報錯的解決方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08Vue自定義復(fù)制指令 v-copy功能的實現(xiàn)
這篇文章主要介紹了Vue自定義復(fù)制指令 v-copy,使用自定義指令創(chuàng)建一個點(diǎn)擊復(fù)制文本功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-01-01vue中如何使用lodash的debounce防抖函數(shù)
防抖函數(shù) debounce 指的是某個函數(shù)在某段時間內(nèi),無論觸發(fā)了多少次回調(diào),都只執(zhí)行最后一次,在Vue中使用防抖函數(shù)可以避免在頻繁觸發(fā)的事件中重復(fù)執(zhí)行操作,這篇文章主要介紹了vue中使用lodash的debounce防抖函數(shù),需要的朋友可以參考下2024-01-01ElementUI修改實現(xiàn)更好用圖片上傳預(yù)覽組件
這篇文章主要為大家介紹了ElementUI修改實現(xiàn)更好用圖片上傳預(yù)覽組件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09vue實現(xiàn)動態(tài)表單動態(tài)渲染組件的方式(2)
這篇文章主要為大家詳細(xì)介紹了vue實現(xiàn)動態(tài)表單動態(tài)渲染組件的方式第二篇,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04