vue中設置動態緩存keep-alive


首先看項目需求,如果是需要全部組件緩存,每次進去只刷新數據,只需要把路由meta的keepAlive設為true即可。

而在緩存周期中activated()鈎子函數,只會更新數據,不會刷新頁面。

 

 但是很多項目的需求並不是這樣,是想要動態設置組件是否緩存,換句話說,需要緩存組件的時候緩存,不需要的時候去掉緩存。

網上很多介紹都是用上面圖片里面的方法,但是本人親自試驗過,這個方法是不行的。

那么問題來了,怎么辦呢?

看過官網介紹的同學肯定見過keep-alive include和exclude,兩個的意思剛好相反,include 名稱匹配的組件會被緩存,exclude 名稱匹配的組件不被緩存。

我在項目中用的是include,如果對exclude 感興趣可自行了解,這就不做詳細的介紹。

cachedViews 則放在store中,如果有需要緩存的組件,push進cachedViews ,不需要緩存的組件在cachedViews 刪除即可。

最后加一個watch 監聽,每次路由變化的時候從緩存里取cachedViews

 

 

 最后提兩點注意:

一、cachedViews 一定要放在store 中,並有對應的方法,可以操控增加或者刪除組件的緩存。

二、組件緩存的name,即每個vue組件里面的name。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM