在使用vue開發時,當進行頁面之間的切換時,上乙個頁面將會被銷毀。但是當我們想節省效能以及保留使用者上次操作的結果或避免ajax重複請求的時候,需要把某些特定的頁面快取下來。在vue中,提供了內建元件keep-alive ,包裹動態元件時,會快取不活動的元件例項,而不是銷毀它們。和相似,是乙個抽象元件:它自身不會渲染乙個dom元素,也不會出現在父元件鏈中。當元件在內被切換,它的activated和deactivated這兩個生命週期鉤子函式將會被對應執行。
當我們想把所有頁面都快取時,只需要用keep-alive包裹router-view即可。
但是大多數情況下,我們只需要把某些不需要請求的頁面快取下來。則我們需要某些特定的頁面實現快取即可。
解決方法: 通過v-if 監聽指定變數來實現對指定頁面的快取;此處我監聽的是$route.meta中自定義的變數。
給需要快取的頁面其$route.meta值設為true,不需要設為false 。在頁面發生切換時, 其$route.meta會做出對應變化,通過watch可以實時監聽到。
之後通過v-if來繫結此變數即可。
效果:
vue單頁應用頁面快取方案
首先我想到的是方案a 方案一 vue的keep alive元件 具體使用如下 這樣所有的頁面都會進行快取。包裹動態元件時,會快取不活動的元件例項,而不是銷毀它們。和 相似,是乙個抽象元件 它自身不會渲染乙個 dom 元素,也不會出現在父元件鏈中。當元件在 內被切換,它的 activated 和 de...
vue實現前端頁面快取
在vue中實現頁面快取 只需要新增keep alive標籤 例如下方 keep alive 接下來我們就需要來聊聊keep alive標籤對vue生命週期的影響 被keep alive包裹的元件,載入過的頁面,再次進入時,是不會執行頁面第一次進入時的部分生命週期函式。並且被keep alive包裹的...
Vue利用keep alive實現頁面快取
做列表快取的時候,受益於 vonvon chris 這篇文章 實現了返回不重新整理頁面,當需要區域性重新整理的時候,使用activated的生命週期 activated,deactivated這兩個生命週期函式一定是要在使用了keep alive元件後才會有的,否則則不存在 使用中遇到的問題 1 因...