中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue中 key keep-alive的實現原理

發布時間:2020-09-11 14:27:43 來源:腳本之家 閱讀:177 作者:麋鹿傳 欄目:web開發

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

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

它有兩個生命周期:

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

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

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

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

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

台湾省| 祁连县| 墨脱县| 理塘县| 长兴县| 酉阳| 新丰县| 上蔡县| 宁陵县| 龙胜| 新龙县| 微博| 怀集县| 曲麻莱县| 大丰市| 襄城县| 达拉特旗| 宁都县| 泰和县| 海城市| 东阳市| 汤原县| 闻喜县| 乌拉特后旗| 慈利县| 公安县| 石首市| 峨眉山市| 南华县| 尉犁县| 静乐县| 阿鲁科尔沁旗| 东方市| 天峨县| 彭泽县| 满洲里市| 社会| 正宁县| 云浮市| 太仆寺旗| 仁化县|