使用keep alive時,資料無法重新整理的問題

2021-09-10 07:55:15 字數 1329 閱讀 8851

概念:是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 最常用的方式,用以提高整體的載...