vue2.0頁面前進刷新回退不刷新的實現


花了整整一周時間,嘗試過很多種方法,終於找到了最佳的解決方案(對我來說最佳),為了祭奠逝去的一周,也為了釋放激動的情緒,現在不得不寫篇博客了。

直接上重點:

第一步:

//在APP.vue里面寫上keepalive,可以實現緩存(keep-alive是什么?查看官方文檔)

 

 

第二步:

//在router的index.js里面給需要緩存的頁面加上meta參數

 

第三步:

//在APP.vue里面寫,當頁面路由發生變化時,將相應頁面的滾動位置記錄下來,在頁面updated時讀取並賦值

 

第四步:

//因為我的想法是從首頁(index.vue)進入列表頁時刷新數據,從列表頁點擊進入詳情頁,再返回列表頁時不刷新,

所以從首頁進入列表頁時,將列表頁的isBack設置為false,

然后在列表頁的activated生命周期鈎子中判斷isBack,為false則執行加載函數,為true則使用緩存。

//index.vue中:

//list.vue中

至此,終於完美實現了效果,其實還有可優化的地方,加入需要keepalive的頁面很多的話,每一個頁面都寫相同的beforeRouteLeave和activated就沒有必要了,

但是具體怎么優化,等需要用到了再說吧。

 


免責聲明!

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



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