91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Vue 動態組件與 v-once 指令的實現

發布時間:2020-09-04 23:55:50 來源:腳本之家 閱讀:145 作者:UCCs 欄目:web開發

本文介紹了Vue 動態組件與 v-once 指令的實現,分享給大家,具體如下:

<div id="root">
  <child-one></child-one>
  <child-two></child-two>
  <button>change</button>
</div>
Vue.component('child-one', {
  template: `<div>child-one</div>`,
})
Vue.component('child-two', {
  template: `<div>child-two</div>`,
})
let vm = new Vue({
  el: '#root'
})

上面代碼需實現,當點擊按鈕時,child-one和child-two實現toggle效果,該怎么實現呢?

<div id="root">
  <child-one v-if="type === 'child-one'"></child-one>
  <child-two v-if="type === 'child-two'"></child-two>
  <button @click="handleBtnClick">change</button>
</div>
Vue.component('child-one', {
  template: `<div>child-one</div>`,
})
Vue.component('child-two', {
  template: `<div>child-two</div>`,
})
let vm = new Vue({
  el: '#root',
  data: {
    type:'child-one'
  },
  methods: {
    handleBtnClick(){
      this.type = this.type === 'child-one' ? 'child-two' : 'child-one'
    }
  }
})

通過上面handleBtnClick函數的實現,配合v-if指令就能實現toggle效果

動態組件

下面這段代碼實現的效果和上面是一樣的。

<div id="root">
  <component :is="type"></component>   //is內容的變化,會自動的加載不同的組件
  <button @click="handleBtnClick">change</button>
</div>
Vue.component('child-one', {
  template: `<div>child-one</div>`,
})
Vue.component('child-two', {
  template: `<div>child-two</div>`,
})
let vm = new Vue({
  el: '#root',
  data: {
    type:'child-one'
  },
  methods: {
    handleBtnClick(){
      this.type = this.type === 'child-one' ? 'child-two' : 'child-one'
    }
  }
})

動態組件的意思是它會根據is里面數據的變化,會自動的加載不同的組件

v-noce指令

每次點擊按鈕切換的時候,Vue 底層會幫我們干什么呢?Vue 底層會判斷這個child-one組件現在不用了,取而代之要用child-two組件,然后它就會把child-one組件銷毀掉,在創建一個child-two組件。假設這時child-two組件要隱藏,child-one組件要顯示,這個時候要把剛剛創建的child-two銷毀掉,在重新創建child-one組件,也就是每一次切換的時候,底層都是要銷毀一個組件,在創建一個組件,這種操作會消耗一定的性能。如果我們的組件的內容,每次都是一樣的可以在上面加一個v-once,看下面代碼。

Vue.component('child-one', {
  template: `<div v-once>child-one</div>`,
})
Vue.component('child-two', {
  template: `<div v-once>child-two</div>`,
})

加上v-once指令之后,有什么好處呢?當chlid-one組件第一次被渲染時,因為組件上面有一個v-once指令,所以它直接就放到內存里了,當切換的時候child-two組件第一次被渲染時,它也會被放到內存里,再次點擊切換時,這時并不需要再重新創建一個child-one組件了,而是從內存里直接拿出以前的child-one組件,它的性能會更高一些。

所以在 Vue 當中,通過v-once指令,可以提高一些靜態內容的展示效率

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

向AI問一下細節

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

AI

济源市| 凤冈县| 广宗县| 沛县| 东阿县| 平顺县| 金塔县| 贵定县| 虎林市| 库尔勒市| 堆龙德庆县| 东海县| 涡阳县| 富平县| 鸡东县| 宣恩县| 文安县| 宁波市| 仲巴县| 淮北市| 西平县| 灵寿县| 浦县| 台中市| 荥经县| 民勤县| 衡南县| 漯河市| 祁门县| 黄龙县| 洛浦县| 镇原县| 卢氏县| 万载县| 习水县| 无棣县| 民丰县| 静安区| 芷江| 个旧市| 辽阳市|