vue2.0頁面前進(jìn)刷新回退不刷新的實(shí)現(xiàn)方法
花了整整一周時(shí)間,嘗試過很多種方法,終于找到了最佳的解決方案(對(duì)我來說最佳),為了祭奠逝去的一周,也為了釋放激動(dòng)的情緒,現(xiàn)在不得不寫篇博客了。
直接上重點(diǎn):
第一步:
//在APP.vue里面寫上keepalive,可以實(shí)現(xiàn)緩存(keep-alive是什么?查看官方文檔)
第二步:
//在router的index.js里面給需要緩存的頁面加上meta參數(shù)
第三步:
//在APP.vue里面寫,當(dāng)頁面路由發(fā)生變化時(shí),將相應(yīng)頁面的滾動(dòng)位置記錄下來,在頁面updated時(shí)讀取并賦值
第四步:
//因?yàn)槲业南敕ㄊ菑氖醉摚╥ndex.vue)進(jìn)入列表頁時(shí)刷新數(shù)據(jù),從列表頁點(diǎn)擊進(jìn)入詳情頁,再返回列表頁時(shí)不刷新,
所以從首頁進(jìn)入列表頁時(shí),將列表頁的isBack設(shè)置為false,
然后在列表頁的activated生命周期鉤子中判斷isBack,為false則執(zhí)行加載函數(shù),為true則使用緩存。
//index.vue中:
//list.vue中
至此,終于完美實(shí)現(xiàn)了效果,其實(shí)還有可優(yōu)化的地方,加入需要keepalive的頁面很多的話,每一個(gè)頁面都寫相同的beforeRouteLeave和activated就沒有必要了,
但是具體怎么優(yōu)化,等需要用到了再說吧。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue translate peoject實(shí)現(xiàn)在線翻譯功能【新手必看】
這篇文章主要介紹了vue translate peoject實(shí)現(xiàn)在線翻譯功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-06-06Vue2打包部署后可動(dòng)態(tài)修改后端接口地址的解決方法
本篇文章將介紹使用Vue2開發(fā)前后端分離項(xiàng)目時(shí),前端打包部署后可動(dòng)態(tài)修改后端接口地址的解決方法,文中通過圖文結(jié)合的方式介紹的非常詳細(xì),需要的朋友可以參考下2024-07-072分鐘實(shí)現(xiàn)一個(gè)Vue實(shí)時(shí)直播系統(tǒng)的示例代碼
這篇文章主要介紹了2分鐘實(shí)現(xiàn)一個(gè)Vue實(shí)時(shí)直播系統(tǒng)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06vue3+elementui-plus實(shí)現(xiàn)一個(gè)接口上傳多個(gè)文件功能
這篇文章主要介紹了vue3+elementui-plus實(shí)現(xiàn)一個(gè)接口上傳多個(gè)文件,先使用element-plus寫好上傳組件,然后假設(shè)有個(gè)提交按鈕,點(diǎn)擊上傳文件請(qǐng)求接口,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07