Vue中keep-alive組件作用詳解
keep-alive組件的作用,供大家參考
作用:用于保留組件狀態(tài)或避免重新渲染(緩存的作用)
比如:當(dāng)一個(gè)目錄頁面與一個(gè)詳情頁面,用戶經(jīng)常:打開目錄頁面=>進(jìn)入詳情頁面=>返回目錄頁面=>打開詳情頁面,這樣目錄頁面就是一個(gè)使用頻率很高的頁面,那么就可以對(duì)目錄組件使用<keep-alive></keep-alive>進(jìn)行緩存,這樣用戶每次返回目錄時(shí),都能從緩存中快速渲染,而不用重新渲染。
屬性
該標(biāo)簽有兩個(gè)屬性include與exclude:
- include:字符串或者正則表達(dá)式。只有匹配的組件會(huì)被緩存
- exclude:字符串或者正則表達(dá)式。任何匹配的組件都不會(huì)被緩存。
用法
<!-- 基本 --> <keep-alive> <component :is="view"></component> </keep-alive> <!-- 多個(gè)條件判斷的子組件 --> <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>
注意: 是用在其一個(gè)直屬的子組件被開關(guān)時(shí)的情形,要求同時(shí)只有一個(gè)子元素被渲染
include和exclude屬性的使用
include和exclude屬性允許組件有條件地緩存。二者都可以用逗號(hào)分割字符串、正則表達(dá)式或者一個(gè)數(shù)組。
<!-- 逗號(hào)分隔字符串 --> <keep-alive include="a,b"> <component :is="view"></component> </keep-alive> <!-- 正則表達(dá)式 (使用 `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選項(xiàng), 如果name選項(xiàng)不可用,則匹配它的局部注冊(cè)名稱
生命鉤子
- keep-alive提供了兩個(gè)生命鉤子,分別是activated與deactivated。因?yàn)閗eep-alive會(huì)將組件保存在內(nèi)存中,并不會(huì)銷毀以及重新創(chuàng)建,所以不會(huì)重新調(diào)用組件的created、mounted這些函數(shù)。
- 被 keep-alive 包裹的組件被緩存之后有兩個(gè)獨(dú)有的生命周期: activated 和 deactivated。activated 生命周期在組件激活時(shí)調(diào)用、deactivated 生命周期在組件停用時(shí)調(diào)用。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue.js引用背景圖background無效的3種解決方案
這篇文章主要介紹了vue.js引用背景圖background無效的3種解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08vue v-for直接循環(huán)數(shù)字實(shí)例
今天小編就為大家分享一篇vue v-for直接循環(huán)數(shù)字實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11vue watch自動(dòng)檢測(cè)數(shù)據(jù)變化實(shí)時(shí)渲染的方法
本篇文章主要介紹了vue watch自動(dòng)檢測(cè)數(shù)據(jù)變化實(shí)時(shí)渲染的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-01-01