Vue中keep-alive組件作用詳解
keep-alive組件的作用,供大家參考
作用:用于保留組件狀態(tài)或避免重新渲染(緩存的作用)
比如:當一個目錄頁面與一個詳情頁面,用戶經(jīng)常:打開目錄頁面=>進入詳情頁面=>返回目錄頁面=>打開詳情頁面,這樣目錄頁面就是一個使用頻率很高的頁面,那么就可以對目錄組件使用<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> <!-- 常見應(yīng)用 --> <keep-alive> <router-view></router-view> </keep-alive>
注意: 是用在其一個直屬的子組件被開關(guān)時的情形,要求同時只有一個子元素被渲染
include和exclude屬性的使用
include和exclude屬性允許組件有條件地緩存。二者都可以用逗號分割字符串、正則表達式或者一個數(shù)組。
<!-- 逗號分隔字符串 --> <keep-alive include="a,b"> <component :is="view"></component> </keep-alive> <!-- 正則表達式 (使用 `v-bind`) --> <keep-alive :include="/a|b/"> <component :is="view"></component> </keep-alive> <!-- 數(shù)組 (使用 `v-bind`) --> <keep-alive :include="['a', 'b']"> <component :is="view"></component> </keep-alive>
匹配首先檢查組件自身的name選項, 如果name選項不可用,則匹配它的局部注冊名稱
生命鉤子
- keep-alive提供了兩個生命鉤子,分別是activated與deactivated。因為keep-alive會將組件保存在內(nèi)存中,并不會銷毀以及重新創(chuàng)建,所以不會重新調(diào)用組件的created、mounted這些函數(shù)。
- 被 keep-alive 包裹的組件被緩存之后有兩個獨有的生命周期: activated 和 deactivated。activated 生命周期在組件激活時調(diào)用、deactivated 生命周期在組件停用時調(diào)用。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
在Vue3中使用CSS Modules實現(xiàn)樣式隔離
隨著構(gòu)建現(xiàn)代前端應(yīng)用的需要,樣式的管理和隔離變得越來越重要,為了解決樣式?jīng)_突和管理困難的問題,CSS Modules 應(yīng)運而生,本文我們將討論如何在 Vue3 中使用 CSS Modules 實現(xiàn)樣式隔離,需要的朋友可以參考下2024-09-09
vue中選項卡點擊切換且能滑動切換功能的實現(xiàn)代碼
本文通過實例代碼給大家介紹了vue中選項卡點擊切換且能滑動切換功能,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下2018-11-11
Vue結(jié)合SignalR實現(xiàn)前后端實時消息同步
這篇文章主要為大家詳細介紹了Vue結(jié)合SignalR實現(xiàn)前后端實時消息同步,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-09-09
vue-router啟用history模式下的開發(fā)及非根目錄部署方法
這篇文章主要介紹了vue-router啟用history模式下的開發(fā)及非根目錄部署方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12
利用Vue3實現(xiàn)一個可以用js調(diào)用的組件
最近遇到個功能要求,想要在全局中調(diào)用組件,而且要在某些js文件內(nèi)調(diào)用,所以這篇文章主要給大家介紹了關(guān)于如何利用Vue3實現(xiàn)一個可以用js調(diào)用的組件的相關(guān)資料,需要的朋友可以參考下2021-08-08

