這篇文章主要講解了“Vue的keep-alive怎么使用”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Vue的keep-alive怎么使用”吧!
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、紹興網(wǎng)站維護(hù)、網(wǎng)站推廣。
用法
keep-alive是 Vue 的內(nèi)置組件,當(dāng)它包裹動(dòng)態(tài)組件時(shí),會(huì)緩存不活動(dòng)的組件實(shí)例,而不是銷毀它們。和 transition 相似,keep-alive 是一個(gè)抽象組件:它自身不會(huì)渲染成一個(gè) DOM 元素,也不會(huì)出現(xiàn)在父組件鏈中。當(dāng)組件在 <keep-alive> 內(nèi)被切換,它的 activated 和 deactivated 這兩個(gè)生命周期鉤子函數(shù)將會(huì)被對應(yīng)執(zhí)行。
在 2.2.0 及其更高版本中,activated 和 deactivated 將會(huì)在 <keep-alive> 樹內(nèi)的所有嵌套組件中觸發(fā)。
作用
在組件切換過程中將狀態(tài)保留在緩存中,防止重復(fù)渲染DOM,減少加載時(shí)間及性能消耗,優(yōu)化用戶體驗(yàn)。(主要用于保留組件狀態(tài)或避免重新渲染)
Props
include - 字符串或正則表達(dá)式。只有名稱匹配的組件會(huì)被緩存。
exclude - 字符串或正則表達(dá)式。任何名稱匹配的組件都不會(huì)被緩存。
max - 數(shù)字。最多可以緩存多少組件實(shí)例。
生命周期鉤子
activated
在 keep-alive 組件激活時(shí)調(diào)用(該鉤子函數(shù)在服務(wù)器端渲染期間不被調(diào)用)。
deactivated
在 keep-alive 組件失活時(shí)調(diào)用(該鉤子在服務(wù)器端渲染期間不被調(diào)用)。
被包含在 keep-alive 中的組件,會(huì)多出兩個(gè)生命周期的鉤子:activated 與 deactivated,使用 keep-alive 會(huì)將數(shù)據(jù)保留在緩存中,如果要在每次進(jìn)入頁面的時(shí)候獲取最新的數(shù)據(jù),需要在activated 階段獲取數(shù)據(jù)(因?yàn)楸话慕M件只有在首次渲染才會(huì)去執(zhí)行created、mounted等鉤子),承擔(dān)原來在created、mounted等鉤子獲取數(shù)據(jù)的任務(wù)。
注意:只有組件被 keep-alive 包裹時(shí),這兩個(gè)生命周期函數(shù)才會(huì)被調(diào)用,如果作為正常組件使用,是不會(huì)被調(diào)用的,以及在 2.1.0 版本之后,使用 exclude 排除之后,就算被包裹在 keep-alive 中,這兩個(gè)鉤子函數(shù)依然不會(huì)被調(diào)用!另外,在服務(wù)端渲染時(shí),此鉤子函數(shù)也不會(huì)被調(diào)用。
示例
緩存(所有)路由組件
App.vue(未使用keep-alive)
<template>
<div id="app">
<div id="nav">
<div class="main-content">
<router-link to="/home" active-class="isActive">Home</router-link>
<span>|</span>
<router-link to="/about" active-class="isActive">About</router-link>
<div class="router-view-content">
<!-- 使用 <router-view> 渲染路徑匹配到的視圖組件 -->
<router-view />
</div>
</div>
</div>
</div>
</template>
<script>
export default {
name: "App"
};
</script>
路由組件1:Home.vue
<template>
<div class="home">
<p>This is a Home page</p>
<el-input v-model="inputText" placeholder="請輸入" style="width:50%"></el-input>
</div>
</template>
<script>
export default {
name: "Home",
data() {
return {
inputText: "",
};
},
};
</script>
路由組件2:About.vue
<template>
<div class="about">
<p>This is an About page</p>
<el-select v-model="value" placeholder="請選擇" style="width: 50%">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</div>
</template>
<script>
export default {
name: "About",
data() {
return {
value: "",
options: [
{
value: "zhangsan",
label: "張三",
},
{
value: "lisi",
label: "李四",
},
],
};
},
};
</script>
在未使用keep-alive情況下,在Home頁面輸入框輸入內(nèi)容
感謝各位的閱讀,以上就是“Vue的keep-alive怎么使用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Vue的keep-alive怎么使用這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
本文題目:Vue的keep-alive怎么使用
瀏覽路徑:http://bm7419.com/article6/jdcdig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、定制開發(fā)、網(wǎng)站導(dǎo)航、網(wǎng)站營銷、商城網(wǎng)站、動(dòng)態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)