欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue?Keep-alive組件緩存的簡單使用代碼

 更新時間:2022年09月21日 11:03:15   作者:Beannnnnnn  
keep-alive是Vue提供的一個抽象組件,用來對組件進行緩存,從而節(jié)省性能,下面這篇文章主要給大家介紹了關于vue?Keep-alive組件緩存的簡單使用,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

Props:

include - 字符串或正則表達式。只有名稱匹配的組件會被緩存。

exclude - 字符串或正則表達式。任何名稱匹配的組件都不會被緩存。

max - 數(shù)字。最多可以緩存多少組件實例。

用法:

keep-alive包裹動態(tài)組件時,會緩存不活動的組件實例,而不是銷毀它們。和 <transition> 相似,<keep-alive> 是一個抽象組件:它自身不會渲染一個 DOM 元素,也不會出現(xiàn)在組件的父組件鏈中。當組件在 <keep-alive> 內被切換,它的 activated 和 deactivated 這兩個生命周期鉤子函數(shù)將會被對應執(zhí)行。

被包含在 keep-alive 中創(chuàng)建的組件,會多出兩個生命周期的鉤子: activated 與 deactivated。

activated:在 keep-alive 組件激活時調用,該鉤子函數(shù)在服務器端渲染期間不被調用。

deactivated:在 keep-alive 組件停用時調用,該鉤子在服務器端渲染期間不被調用。

使用 keep-alive 會將數(shù)據(jù)保留在內存中,如果要在每次進入頁面的時候獲取最新的數(shù)據(jù),需要在 activated 階段獲取數(shù)據(jù),承擔原來 created 鉤子函數(shù)中獲取數(shù)據(jù)的任務。
 

一、基本用法

<template>
 <div>
    <div>
      <button @click="flag='testA'">A組件</button>
      <button @click="flag='testB'">B組件</button>
      <component :is="flag"></component>
    </div>
 </div>
</template>
 
<script>
import testA from './testA'; 
 
export default {
  data(){
    return{
      flag:'testA'
    }
  },
  methods:{
 
  },
  components:{
    testA,
   'testB': () => import('./testB') 
  }
}
</script>

keep-alive主要用于保留組件狀態(tài)或避免重新渲染。比如在動態(tài)組件中,為組件A和組件B分別設置了隨機數(shù)編號,若在切換組件后又顯示新的隨機數(shù)體驗極差,因此要用到keep-alive,下面聊聊keep-alive的各種用法。

App.vue:

//第一種:直接在組件外面套keep-alive 組件A和組件B內容都會被緩存
    <keep-alive>
      <component :is="flag"></component>
    </keep-alive>
 
//第二種:include 此時只有組件A內容會被緩存 若有多個可用逗號分隔include="testA,testB"
      <keep-alive include="testA">
         <component :is="flag"></component> 
      </keep-alive>
 
//第三種:include+正則表達式或者數(shù)組 這種情況必須用v-bind (:include="")
      <keep-alive :include="['testA']">
         <component :is="flag"></component>
      </keep-alive> 
 
//第四種:exclude 此時組件A內容不會被緩存,組件B內容會被緩存
      <keep-alive exclude="testA">
         <component :is="flag"></component>
      </keep-alive> 
 
 
//特殊情況:若include和exclude同時出現(xiàn) exclude的優(yōu)先級是高于include的此時只緩存組件B
      <keep-alive include="testA,testB" exclude="testA">
         <component :is="flag"></component>
      </keep-alive> 

二、結合Router使用

默認情況下在點擊標題幾后跳轉到別的組件再回到Tab切換組件后仍是展示默認的內容1,此時可以結合router來緩存其內容達到上圖的效果。

首先在router中為路由頁面添加meta屬性

{
    path: '/tab',
    name: 'tab',
    meta:{
      keepAlive:true   //需要緩存
    },
    component: () => import('../views/Tab.vue')
  },
  {
    path: '/banner',
    name: 'banner',
    meta:{
      keepAlive:false   //不需要緩存
    },
    component: () => import('../views/Banner.vue')
  }

然后在App.vue中添加判斷:

    //此處是為添加了keepAlive=true 的路由添加緩存
     <keep-alive>
        <router-view v-if="$route.meta.keepAlive"/>   
     </keep-alive>
 
    //此處是為添加了keepAlive=false 的路由默認不緩存
      <router-view v-if="!$route.meta.keepAlive"/>   

注:本文演示所用案例來自金渡教育課件

總結

到此這篇關于vue Keep-alive組件緩存簡單使用的文章就介紹到這了,更多相關vue Keep-alive組件緩存使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Vue數(shù)據(jù)雙向綁定原理實例解析

    Vue數(shù)據(jù)雙向綁定原理實例解析

    這篇文章主要介紹了Vue數(shù)據(jù)雙向綁定原理實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • vue中實現(xiàn)子組件相互切換且數(shù)據(jù)不丟失的策略詳解

    vue中實現(xiàn)子組件相互切換且數(shù)據(jù)不丟失的策略詳解

    項目為數(shù)據(jù)報表,但是一個父頁面中有很多的子頁面,而且子頁面中不是相互關聯(lián),但是數(shù)據(jù)又有聯(lián)系,所以本文給大家介紹了vue中如何實現(xiàn)子組件相互切換,而且數(shù)據(jù)不會丟失,并有詳細的代碼供大家參考,需要的朋友可以參考下
    2024-03-03
  • vue踩坑記錄之數(shù)組定義和賦值問題

    vue踩坑記錄之數(shù)組定義和賦值問題

    這篇文章主要給大家介紹了關于vue踩坑記錄之數(shù)組定義和賦值問題的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用vue具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-03-03
  • vue3 setup中defineEmits與defineProps的使用案例詳解

    vue3 setup中defineEmits與defineProps的使用案例詳解

    在父組件中定義String、Number、Boolean、Array、Object、Date、Function、Symbol這些類型的數(shù)據(jù),使用defineEmits會返回一個方法,使用一個變量emits(變量名隨意)去接收,本文給大家介紹vue3 setup中defineEmits與defineProps的使用案例,感興趣的朋友一起看看吧
    2023-10-10
  • vant?Cascader級聯(lián)選擇實現(xiàn)可以選擇任意一層級

    vant?Cascader級聯(lián)選擇實現(xiàn)可以選擇任意一層級

    這篇文章主要介紹了vant?Cascader級聯(lián)選擇實現(xiàn)可以選擇任意一層級方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Vue 內置組件keep-alive的使用示例

    Vue 內置組件keep-alive的使用示例

    這篇文章主要介紹了Vue 內置組件keep-alive的使用示例,幫助大家更好的理解和學習使用vue,感興趣的朋友可以了解下
    2021-04-04
  • Vue 按鍵修飾符處理事件的方法

    Vue 按鍵修飾符處理事件的方法

    這篇文章主要介紹了Vue 按鍵修飾符的相關資料,vue中新增按鍵修飾符和系統(tǒng)修飾符來處理類似的事件,具體內容詳情大家參考下本文
    2018-05-05
  • Vue實現(xiàn)模糊查詢的簡單方法實例

    Vue實現(xiàn)模糊查詢的簡單方法實例

    這篇文章主要給大家介紹了關于Vue實現(xiàn)模糊查詢的簡單方法,在vue中,前端模糊搜索主要是用computed屬性實現(xiàn),本文通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-08-08
  • 7個適用于Vue?3的高顏值UI組件庫

    7個適用于Vue?3的高顏值UI組件庫

    這篇文章主要給大家分享介紹了7個適用于Vue?3的高顏值UI組件庫,合理利用,又或者學習借鑒都是不錯的選擇,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • Vue3實現(xiàn)密碼加密登錄的示例代碼

    Vue3實現(xiàn)密碼加密登錄的示例代碼

    現(xiàn)在,很多登陸表單都會使用密碼加密,為登錄安全,登錄表單輸入密碼,會加密后傳入后臺,本文就來介紹一下Vue3實現(xiàn)密碼加密登錄的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02

最新評論