vue-keepAlive遇到的問題。


1. vue中keepAlive組件緩存

  keepAlive很輕松的就能夠實現組件之間的緩存,主要還是返回其DOM不讓數據重新刷新。當使用了keepAlive之后,頁面第一次進入,鈎子的觸發順序created->mounted->activated,退出時觸發deactivated。再次進入(前進或者后退)時,只觸發actived。

  注:activated和deactivated只在使用了keepAlive緩存機制才會觸發的鈎子函數。

  下面就要開始我使用keepAlive遇到的一個問題

  我先來說一下我的效果,有一個列表,點擊詳情返回列表后還在當前那一條數據(並不會重新請求數據),但是詳情頁中還有更新頭像這一個功能點,但是這個組件已經使用keepAlive緩存機制了,在返回到組件中頭像並不會更新,還是原來的頭像,我記得我請求過數據,數據會更新,但是視圖並不會。

  因為這個問題我想了很久,因為我的項目是這微信中第三方打開的。

  也看過ios,和安卓的效果,他們是更新完頭像之后,返回列表在列表頁面有上拉刷新。

  所以最后我就使用的路由的鈎子函數(導航守衛)來解決的這個問題。

  beforeRouteLeave(to, from, next){  

    // 主要跳轉到其他頁面時住的keepAlive值設置為false

    from.meta.keepAlive = false

  }

  這樣離開這個頁面的時候就會把keepAlive設置成false,再次進入的時候就會重新請求數據,頭像的問題也就能夠得到解決

 

  我也是第一次記錄這樣的文章,希望同行們多多指教,多多留言,共同進步。

  

                                      2018-11-22


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM