Vue的keep-alive怎么使用

這篇文章主要講解了“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)

成都做網(wǎng)站