在 Vue 當中,當一個元件在被銷毀後,其內部的狀態都會被移除,但是當我們想要製作一些像是列表或是搜尋表格時我們希望能夠保持他的狀態,不要每次都會被清空,這時候我們就可以使用 keep-alive 來處理這問題
<keep-alive>
<component></component>
</keep-alive>
並且我們還可以透過 include 以及 exclude 來對我們想要包含的組件進行篩選
其中有這三種表達式,基本上都是以元件的 name 進行匹配
<keep-alive include="a, b"></keep-alive>
: 單純輸入字串<keep-alive exclude="/a|b/"></keep-alive>
: 輸入正則表達式<keep-alive include="['a', 'b']"></leep-alive>
: 輸入陣列並且還可以透過 max 屬性來限制最大緩存量,若超過了這個數值將會從最久沒有觸發的元件開始重置
<keep-alive max="10"></leep-alive>
除了這些之外,keep-alive 還提供了兩個鉤子函式 onActivated 以及 onDeactivated,分別代表元件觸發以及元件離開,需要注意的是,這兩個鉤子同時也會與 mounted 和 destoryed 兩個鉤子同時觸發