vue可以通過元素包裹元件,實現快取,下次使用時不需要重新建立該元件。但存在乙個問題:keep-alive包裹的元件中有滾動元素時,keep-alive不會儲存滾動位置。實現後退不重新整理主要依據keep-alive元件的activated和deactivated這兩個生命週期鉤子函式。
vue鉤子函式的執行順序:
不使用keep-alive
beforerouteenter --> created --> mounted --> destroyed使用keep-alive
初次進入頁面,beforerouteenter --> created --> mounted --> activated --> deactivated
再次進入快取的頁面,只會觸發beforerouteenter -->activated --> deactivated。created和mounted不會再執行。
其中,activated在keep-alive元件啟用時呼叫.deactivated在keep-alive元件被停用時呼叫.
demo實現了後退不重新整理,並且返回時滾動到上次瀏覽的深度。
該demo中,包含三個鏈結導航。
home --> pagea --> pageb --> pagec
依次前進,每次前進到乙個新頁面都需要獲取資料,而按下後退鍵後,
從pagec返回到pageb,pageb不再獲取新資料,而是使用之前快取的資料。
從pageb返回到pagea時,pagea不再獲取新資料,而是使用之前的資料。並且當pagea存在滾動條時,返回時會滾動到上次瀏覽高度。
所以,pagea和pageb需要快取,pagec不需要快取。
import vue from 'vue';
import router from 'vue-router';
vue.use(router);
const router = new router(
},},},}
]});
export default router;
}div>
div>
div>
vue實現前進重新整理,後退不重新整理
專案中客戶提出返回列表頁需要快取之前查詢的資料,用到了以下方法解決了這個需求 實現思路 注 demo中,index頁面包含三個鏈結導航。page1 page2 page3.依次前進,每次前進到乙個新頁面都需要獲取資料,而按下後退鍵後,從page3返回到page2,page2不再獲取新資料,而是使用之...
keep alive不生效 keepalive詳解
一 簡介 二 vrrp協議 虛擬路由冗餘協議 vrrp是一種容錯協議,它通過把幾台路由裝置聯合組成一台虛擬的路由裝置,並通過一定的機制來保證當主機的下一跳裝置出現故障時,可以及時將業務切換到其它裝置,從而保持通訊的連續性和可靠性。vrrp將區域網內的一組路由器劃分在一起,稱為乙個備份組。備份組由乙個...
keep alive實現原理
二 keep alive介紹與應用 2.1 keep alive是什麼 keep alive是乙個抽象元件 它自身不會渲染乙個dom元素,也不會出現在父元件鏈中 使用keep alive包裹動態元件時,會快取不活動的元件例項,而不是銷毀它們。乙個場景 使用者在某個列表頁面選擇篩選條件過濾出乙份資料列...