概念:是vue的乙個內部元件,適合用來快取不需要實時更新的元件,這樣可以保留元件狀態避免重新渲染。
props:
問題: 在需要重新請求資料的時候,依然走的快取
案例中的部分原始碼:
問題描述:
這個專案是乙個後台管理系統,由於很多元件都有走快取的原因,導致在更換賬戶之後,資料依然走的快取,並沒有載入新的資料,從而賬戶雖然已經更換,但是現實的內容還是上乙個賬戶下的內容,這時候在network也會發現,除了之前請求的資料,就沒有新資料請求的記錄了
解決方案:
方案1:如果要在進入頁面的時候獲取最新的資料,需要在activated階段獲取資料,承擔原來created鉤子中獲取資料的任務(親測,時而有效,時而無效,不知道是什麼原因)。
方案2:在賬戶登入之後呼叫 **window.location.reload() **,起到重新請求的作用(已親測)
方案3:在vuex中設定狀態,動態繫結 include 值,在登入的時候快取需要快取的元件,在退出的時候,清除需要重新整理的元件(效果很理想,也順帶解決了載入資料時,資料閃現的情況)
//--------------------- vuex ----------------------------
const state =
const mutations =
,removealivelist
(state)
}const getters =
}export
default
newvuex.store
()
computed:}}
,//--------------------- 在退出的時候,提交removealivelist ---------------
this
.$store.
commit
('removealivelist'
)//--------------------- 在登入的時候,提交keepaliveliststate ---------------
this
.$store.
commit
('keepaliveliststate'
)推薦博文:
vue使用keep alive實現資料快取不重新整理
到現在,接觸vue也小段時間了,專案進行到了一定程度,然而專案缺少了快取機制,所以每次跳轉頁面都會重新created一下資料,雖說系統的資料請求速度很快,但是這樣做對系統的效能會有很大的壞處的,所以到這裡就要對系統優化下,新增快取了。其實到現在,對於vue還是沒有玩通,每深挖一次,就會發現一次vue...
keepAlive使用方法
注 此處的重新整理特指當進入此頁面時,觸發ajax請求,向伺服器獲取資料。不重新整理特指當進入此頁面時,不觸發ajax請求,而是使用之前快取的資料,以便減少伺服器請求,使用者體驗更流暢。v if route.meta.keepalive router view keep alive v if rou...
keep alive使用筆記
vue2.0提供了keep alive元件,用來快取元件,避免多次載入,減少效能消耗。1.將整個網頁快取起來 router view class view keep alive transition transition mode out in router view 最常用的方式,用以提高整體的載...