最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

Props:

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

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

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

用法:

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

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

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

deactivated:在 keep-alive 組件停用時調(diào)用,該鉤子在服務(wù)器端渲染期間不被調(diào)用。

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

一、基本用法

<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è)置了隨機(jī)數(shù)編號,若在切換組件后又顯示新的隨機(jī)數(shù)體驗(yàn)極差,因此要用到keep-alive,下面聊聊keep-alive的各種用法。

App.vue:

//第一種:直接在組件外面套keep-alive 組件A和組件B內(nèi)容都會被緩存
    <keep-alive>
      <component :is="flag"></component>
    </keep-alive>
 
//第二種:include 此時只有組件A內(nèi)容會被緩存 若有多個可用逗號分隔include="testA,testB"
      <keep-alive include="testA">
         <component :is="flag"></component> 
      </keep-alive>
 
//第三種:include+正則表達(dá)式或者數(shù)組 這種情況必須用v-bind (:include="")
      <keep-alive :include="['testA']">
         <component :is="flag"></component>
      </keep-alive> 
 
//第四種:exclude 此時組件A內(nèi)容不會被緩存,組件B內(nèi)容會被緩存
      <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> 

二、結(jié)合Router使用

默認(rèn)情況下在點(diǎn)擊標(biāo)題幾后跳轉(zhuǎn)到別的組件再回到Tab切換組件后仍是展示默認(rèn)的內(nèi)容1,此時可以結(jié)合router來緩存其內(nèi)容達(dá)到上圖的效果。

首先在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 的路由默認(rèn)不緩存
      <router-view v-if="!$route.meta.keepAlive"/>   

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

總結(jié)

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

相關(guān)文章

  • vue.js全局組件和局部組件示例代碼

    vue.js全局組件和局部組件示例代碼

    組件是Vue.js的最核心的功能,所謂的組件化就是把頁面拆分成多個組件,每個組件單獨(dú)使用CSS,JS,模板,圖片等資源進(jìn)行開發(fā)與維護(hù),然后在制作網(wǎng)頁的時候根據(jù)需要調(diào)用相關(guān)的組件,這篇文章主要給大家介紹了關(guān)于vue.js全局組件和局部組件的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • vue router 跳轉(zhuǎn)時打開新頁面的示例方法

    vue router 跳轉(zhuǎn)時打開新頁面的示例方法

    這篇文章主要介紹了vue router 跳轉(zhuǎn)時打開新頁面的示例方法,本文通過示例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07
  • 詳解Vue如何實(shí)現(xiàn)響應(yīng)式布局

    詳解Vue如何實(shí)現(xiàn)響應(yīng)式布局

    這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)響應(yīng)式布局的兩種方法,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-12-12
  • 前端記錄輸入框的歷史輸入記錄實(shí)現(xiàn)步驟(輸入框數(shù)據(jù)記憶功能)

    前端記錄輸入框的歷史輸入記錄實(shí)現(xiàn)步驟(輸入框數(shù)據(jù)記憶功能)

    這篇文章主要介紹了如何使用localStorage來記錄每個輸入框的歷史輸入記錄,并在用戶輸入時動態(tài)更新這些記錄,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-03-03
  • Vue.js實(shí)現(xiàn)對視頻預(yù)覽的示例代碼

    Vue.js實(shí)現(xiàn)對視頻預(yù)覽的示例代碼

    本文主要介紹了Vue.js實(shí)現(xiàn)對視頻預(yù)覽的示例代碼,通過監(jiān)聽文件選擇事件和使用FileReader API,可以實(shí)現(xiàn)視頻文件的預(yù)覽功能,感興趣的可以了解一下
    2025-01-01
  • 利用Vue3+Element-plus實(shí)現(xiàn)大文件分片上傳組件

    利用Vue3+Element-plus實(shí)現(xiàn)大文件分片上傳組件

    在開發(fā)中如果上傳的文件過大,可以考慮分片上傳,分片就是說將文件拆分來進(jìn)行上傳,將各個文件的切片傳遞給后臺,然后后臺再進(jìn)行合并,下面這篇文章主要給大家介紹了關(guān)于利用Vue3+Element-plus實(shí)現(xiàn)大文件分片上傳組件的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • 詳解在vue3中使用jsx的配置以及一些小問題

    詳解在vue3中使用jsx的配置以及一些小問題

    本文主要介紹了在vue3中使用jsx的配置以及一些小問題,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 淺析Vue中method與computed的區(qū)別

    淺析Vue中method與computed的區(qū)別

    在new Vue的配置參數(shù)中的computed和methods都可以處理大量的邏輯代碼,但是什么時候用哪個屬性,要好好區(qū)分一下才能做到正確的運(yùn)用vue。這篇文章主要介紹了Vue中method與computed的區(qū)別,需要的朋友可以參考下
    2018-03-03
  • React和Vue中監(jiān)聽變量變化的方法

    React和Vue中監(jiān)聽變量變化的方法

    這篇文章主要介紹了React和Vue中監(jiān)聽變量變化的方法,本文通過一個場景,父組件傳遞子組件一個A參數(shù),子組件需要監(jiān)聽A參數(shù)的變化轉(zhuǎn)換為state,具體內(nèi)容詳情大家跟隨小編一起通過本文學(xué)習(xí)吧
    2018-11-11
  • 基于vue開發(fā)微信小程序mpvue-docs跳轉(zhuǎn)頁面功能

    基于vue開發(fā)微信小程序mpvue-docs跳轉(zhuǎn)頁面功能

    這篇文章主要介紹了基于vue寫微信小程序mpvue-docs跳轉(zhuǎn)頁面,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04

最新評論

新泰市| 阳原县| 乐都县| 大新县| 凤城市| 平远县| 互助| 乐安县| 牡丹江市| 瓦房店市| 沅江市| 马边| 阿拉善左旗| 梧州市| 龙里县| 尚义县| 乌拉特中旗| 习水县| 綦江县| 余干县| 凤山县| 南丰县| 沈阳市| 晋城| 略阳县| 红原县| 河间市| 聂荣县| 鸡西市| 宿迁市| 南汇区| 清新县| 白银市| 湖北省| 隆林| 金门县| 巍山| 铁力市| 于都县| 雷波县| 河源市|