Vue keep alive 快取清理

2021-10-18 19:23:28 字數 1297 閱讀 3998

vue使用過程中 keep-alive 是個神奇的存在,可以近乎魔法的快取頁面狀態,當然keep-alive也存在一些問題,不能靈活清理快取就是本文要解決的問題。

1、使用場景

頁面開發設計三個頁面,分別為:指標配置(parameterconfiguration)、壞點剔除(dataclean)、結果展示(displayresult),因為涉及到回退顯示問題,所以使用keep-alive和動態元件的組合實現上述功能。

同時,頁面提供兩種場景入口,配置資料場景:包含上述三個頁面,匯入資料場景:包含最後兩個頁面.

2、本文需要解決的問題

由於場景切換時各自快取的資料已經無意義,所以需要解決的問題是在同一場景下快取各自頁面資訊,當切換場景時,清理快取資訊。

3、解決方案

維護乙份配置whitelist,標記需要快取的元件

whitelist:

['parameterconfiguration'

,'dataclean'

,'displayresult'

]

維護乙個變數currentcomponent,標記當前需顯示元件,在每次切換頁面時更新該變數

:include

="whitelist"

>

:is=

"currentcomponent"

>

component

>

keep-alive

>

維護一變數cachedcom,儲存快取下的頁面資訊

選擇在元件active狀態時將元件vnode儲存至變數cachedcom

activated()

vue為每個元件建立了唯一tag,切換元件仍使用相同tag,所以不用擔心重複問題

在配置資料與匯入資料場景切換時,呼叫清理快取邏輯

Vue keep alive快取路由資訊

在不使用keep alive時,通過路由跳轉到另一組件上時,上乙個元件會被vue銷毀,在次進入,頁面會保持初始狀態,不會對使用者的更改保留,如果需要包作在某元件上的更改,就可以使用keep alive儲存路由入口 router view keep alive div let one created ...

vue keep alive內建快取元件

1 當元件在keep alive被切換時將會執行activeted和deactiveted兩個生命週期 2 inlude 正規表示式或字串 只有符合條件的元件會被快取 exclude正規表示式或字串,任何符合條件的元件不會被快取 3 keep alive是vue2.0的功能 4 keep alive...

html強制清快取

設定html強制清除快取 123 4 但是也不保證是百分百正確。在開發時候經常遇到乙個問題,我們根據版本號去控制快取問題,當我們發布新版本,使用新的版本號的時候,發現html裡面引用的版本號卻是舊的版本號 原來是該html檔案被快取了,很多時候我們設定禁止html檔案被快取,但依然會出現被快取的情況...