1. 程式人生 > 程式設計 >Vue中keep-alive元件作用詳解

Vue中keep-alive元件作用詳解

keep-alive元件的作用,供大家參考

作用:用於保留元件狀態避免重新渲染(快取的作用)

比如:當一個目錄頁面與一個詳情頁面,使用者經常:開啟目錄頁面=>進入詳情頁面=>返回目錄頁面=>開啟詳情頁面,這樣目錄頁面就是一個使用頻率很高的頁面,那麼就可以對目錄元件使用<keep-alive></keep-alive>進行快取,這樣使用者每次返回目錄時,都能從快取中快速渲染,而不用重新渲染

屬性

該標籤有兩個屬性include與exclude:

  • include:字串或者正則表示式。只有匹配的元件會被快取
  • exclude:字串或者正則表示式。任何匹配的元件都不會被快取。

用法

<!-- 基本 -->
<keep-alive>
 <component :is="view"></component>
</keep-alive>

<!-- 多個條件判斷的子元件 -->
<keep-alive>
 <comp-a v-if="a > 1"></comp-a>
 <comp-b v-else></comp-b>
</keep-alive>

<!-- 常見應用 -->
<keep-alive>
 <router-view></router-view>
</keep-alive>

注意: 是用在其一個直屬的子元件被開關時的情形,要求同時只有一個子元素被渲染

include和exclude屬性的使用

include和exclude屬性允許元件有條件地快取。二者都可以用逗號分割字串、正則表示式或者一個數組。

<!-- 逗號分隔字串 -->
<keep-alive include="a,b">
 <component :is="view"></component>
</keep-alive>

<!-- 正則表示式 (使用 `v-bind`) -->
<keep-alive :include="/a|b/">
 <component :is="view"></component>
</keep-alive>

<!-- 陣列 (使用 `v-bind`) -->
<keep-alive :include="['a','b']">
 <component :is="view"></component>
</keep-alive>

匹配首先檢查元件自身的name選項,如果name選項不可用,則匹配它的區域性註冊名稱

生命鉤子

  • keep-alive提供了兩個生命鉤子,分別是activateddeactivated。因為keep-alive會將元件儲存在記憶體中,並不會銷燬以及重新建立,所以不會重新呼叫元件的created、mounted這些函式。
  • 被 keep-alive 包裹的元件被快取之後有兩個獨有的生命週期: activated 和 deactivated。activated 生命週期在元件啟用時呼叫、deactivated 生命週期在元件停用時呼叫。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。