Vue 2.1.0 之后新增了一個名為 keep-alive 的抽象組件。它可以緩存具有相同組件名稱的組件實例,以避免在組件切換時反復銷毀和重新創建組件實例。通過緩存組件實例,可以在組件之間快速切換,并且可以維護狀態信息和避免重新渲染。
當需要緩存一個組件時,只需要在對應的<component>
元素外包裹一個<keep-alive>
元素,并將其命名為需要緩存的組件名稱即可。例如,下面的示例將緩存一個名為MyComponent
的組件實例:
<keep-alive>
<component :is="MyComponent"></component>
</keep-alive>
當MyComponent
組件實例被緩存后,它的生命周期鉤子將被改變。在組件被激活時,除activated
和deactivated
鉤子外的所有鉤子都將會被調用一次。當組件被停用時,除activated
和deactivated
鉤子外的所有鉤子也都將被調用一次。
如果想要在被緩存的組件實例被銷毀時執行一些操作,可以給<keep-alive>
組件添加include
和exclude
屬性。其中include
屬性用于指定需要緩存的組件名稱列表,不在列表中的組件將被直接銷毀,而exclude
屬性用于指定不需要緩存的組件名稱列表,列表中的組件也將被直接銷毀。例如:
<keep-alive :include="['MyComponent']">
<component :is="MyComponent"></component>
</keep-alive>
除了將需要緩存的組件包裹在<keep-alive>
元素內之外,還可以在全局配置中設定需要緩存的組件。在 Vue 的根實例中,可以設置一個components
屬性,它是一個對象,鍵為組件名稱,值為布爾值,true 表示需要緩存,false 表示不需要。例如:
new Vue({
components: {
'MyComponent': true
}
})
上一篇mysql跟蹤指定數據庫
下一篇c 寫.json文件