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檔案被快取,但依然會出現被快取的情況...