Vue中 key keep-alive的實現原理


vue2.0提供了一個keep-alive組件用來緩存組件,避免多次加載相應的組件,減少性能消耗

keep-aliv是Vue.js的一個內置組件。它能夠不活動的組件實例保存在內存中,而不是直接將其銷毀,它是一個抽象組件,不會被渲染到真實DOM中,也不會出現在父組件鏈中。

它有兩個生命周期:

  1. activated: keep-alive組件激活時調用
  2. deactivated: keep-alive組件停用時調用

它提供了include與exclude兩個屬性,允許組件有條件地進行緩存。

keep-alive key

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<!DOCTYPE html>
< html >
< head >
   < title ></ title >
   < script type = "text/javascript" src = "./vue.js" ></ script >
</ head >
< body >
   < div id = "app" >
     < keep-alive >
       < child-component key = "1" v-if = "seen" name = "1" ></ child-component >
       < child-component key = "2" v-if = "!seen" name = "2" ></ child-component >
     </ keep-alive >
     < button @ click = "toggle" >toggle</ button >
   </ div >
   < script type = "text/javascript" >
     Vue.component('child-component', {
       template: `< input type = "text" placeholder = "enter" >`,
       data() {
         return {}
       },
       props: ["name"],
       mounted() {
         console.log(`${this.name} mounted`)
       }
     })
     const vm = new Vue({
       el: "#app",
       data: {
         seen: true
       },
       methods: {
         toggle() {
           this.seen = !this.seen;
         }
       }
     })
   </ script >
</ body >
</ html >

key是標識元素不再被復用,注意key是Vue中的一個保留的屬性,不能作為prop傳遞給子組件,否則會在控制台看到Vue的報錯

但是keep-alive標識不重復創建組件實例,也就是只會觸發一次created mounted事件,

利用兩者可以對組件的復用進行比較精細的管理。

 

IOS數據存儲技術開發視頻教程 12課 附源碼課件    下載地址:百度網盤下載

IOS界面開發UIKit詳細使用視頻教程 43課 附源碼講義    下載地址:百度網盤下載
IOS9零基礎到精通大神班視頻教程 包含源碼課件面試題就業指導    下載地址:百度網盤下載
IOS培訓班第四期 基礎+就業班 完整高清版    下載地址:百度網盤下載
IOS培訓班第六期 包含源碼課件面試資料    下載地址:百度網盤下載
IOS培訓班第五期【完整版】    下載地址:百度網盤下載
IOS多點觸控與手勢識別開發視頻教程 10課 附源碼    下載地址:百度網盤下載
中游學院Swift語言視頻教程 教學視頻 百度網盤下載    下載地址:百度網盤下載
極客ios開發工程師 全套視頻教程 教學視頻 百度網盤下載    下載地址:百度網盤下載
開源力量iOS開發從OC到Swift入門與修煉 視頻教程 教學視頻 百度網盤下載    下載地址:百度網盤下載
iOS常用UI控件使用速成秘籍 視頻教程 教學視頻 百度網盤下載    下載地址:百度網盤下載
IOS視頻教程 全套編程自學基礎入門app手機應用開發游戲項目實戰    下載地址:百度網盤下載
IOS(iPhone)開發中級視頻教程    下載地址:百度網盤下載
IOS開發實戰視頻教程    下載地址:百度網盤下載
小碼哥大神班IOS五期不加密版本    下載地址:百度網盤下載
小馬哥IOS9 蘋果APP開發實戰培訓基礎大神班視頻教程    下載地址:百度網盤下載
黑馬程序員iOS視頻開發教程/李明傑    下載地址:百度網盤下載
IOS開發技術教程 極客學院最新IOS開發技術VIP教程入門到精通教程    下載地址:百度網盤下載
iOS中級視頻教程    下載地址:百度網盤下載
iOS面試必看題    下載地址:百度網盤下載

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM