国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > JavaScript > 正文

Vue中 key keep-alive的實(shí)現(xiàn)原理

2019-11-19 12:55:13
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

vue2.0提供了一個(gè)keep-alive組件用來(lái)緩存組件,避免多次加載相應(yīng)的組件,減少性能消耗

keep-aliv是Vue.js的一個(gè)內(nèi)置組件。它能夠不活動(dòng)的組件實(shí)例保存在內(nèi)存中,而不是直接將其銷(xiāo)毀,它是一個(gè)抽象組件,不會(huì)被渲染到真實(shí)DOM中,也不會(huì)出現(xiàn)在父組件鏈中。

它有兩個(gè)生命周期:

  1. activated: keep-alive組件激活時(shí)調(diào)用
  2. deactivated: keep-alive組件停用時(shí)調(diào)用

它提供了include與exclude兩個(gè)屬性,允許組件有條件地進(jìn)行緩存。

keep-alive key

<!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是標(biāo)識(shí)元素不再被復(fù)用,注意key是Vue中的一個(gè)保留的屬性,不能作為prop傳遞給子組件,否則會(huì)在控制臺(tái)看到Vue的報(bào)錯(cuò)

但是keep-alive標(biāo)識(shí)不重復(fù)創(chuàng)建組件實(shí)例,也就是只會(huì)觸發(fā)一次created mounted事件,

利用兩者可以對(duì)組件的復(fù)用進(jìn)行比較精細(xì)的管理

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宁津县| 安多县| 平阴县| 来宾市| 漳浦县| 剑河县| 鲁山县| 太原市| 当涂县| 盐池县| 息烽县| 石家庄市| 甘谷县| 富蕴县| 西乌珠穆沁旗| 同江市| 四川省| 莱西市| 元阳县| 新密市| 延边| 尼木县| 山东省| 淄博市| 孟州市| 师宗县| 瑞丽市| 白沙| 成都市| 万宁市| 唐河县| 涞水县| 太湖县| 永仁县| 永吉县| 中方县| 都匀市| 泸定县| 金塔县| 天祝| 昌吉市|