1. vue中keepAlive組件緩存
keepAlive很輕松的就能夠實現組件之間的緩存,主要還是返回其DOM不讓數據重新刷新。當使用了keepAlive之后,頁面第一次進入,鈎子的觸發順序created->mounted->activated,退出時觸發deactivated。再次進入(前進或者后退)時,只觸發actived。
注:activated和deactivated只在使用了keepAlive緩存機制才會觸發的鈎子函數。
下面就要開始我使用keepAlive遇到的一個問題
我先來說一下我的效果,有一個列表,點擊詳情返回列表后還在當前那一條數據(並不會重新請求數據),但是詳情頁中還有更新頭像這一個功能點,但是這個組件已經使用keepAlive緩存機制了,在返回到組件中頭像並不會更新,還是原來的頭像,我記得我請求過數據,數據會更新,但是視圖並不會。
因為這個問題我想了很久,因為我的項目是這微信中第三方打開的。
也看過ios,和安卓的效果,他們是更新完頭像之后,返回列表在列表頁面有上拉刷新。
所以最后我就使用的路由的鈎子函數(導航守衛)來解決的這個問題。
beforeRouteLeave(to, from, next){
from.meta.keepAlive = false
}
這樣離開這個頁面的時候就會把keepAlive設置成false,再次進入的時候就會重新請求數據,頭像的問題也就能夠得到解決
我也是第一次記錄這樣的文章,希望同行們多多指教,多多留言,共同進步。
2018-11-22