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

首頁 > 語言 > JavaScript > 正文

Vue學習筆記進階篇之多元素及多組件過渡

2024-05-06 15:14:10
字體:
來源:轉載
供稿:網友

本文介紹了vue 多元素及多組件過渡,這個地方知識點挺多的,而且很重要,所以,今天添加一點小筆記。

多元素的過渡

對于原生標簽可以使用 v-if/v-else.但是有一點需要注意:

當有相同標簽名的元素切換時,需要通過 key 特性設置唯一的值來標記以讓 Vue 區分它們,否則 Vue 為了效率只會替換相同標簽內部的內容。即使在技術上沒有必要,給在 <transition> 組件中的多個元素設置 key 是一個更好的實踐。

示例:

<transition> <button v-if="isEditing" key="save">  Save </button> <button v-else key="edit">  Edit </button></transition>

在一些場景中,也可以給通過給同一個元素的 key特性設置不同的狀態來代替v-if和 v-else,上面的例子可以重寫為:

<transition> <button v-bind:key="isEditing">  {{ isEditing ? 'Save' : 'Edit' }} </button></transition>

使用多個 v-if 的多個元素的過渡可以重寫為綁定了動態屬性的單個元素過渡。 例如:

<transition> <button v-if="docState === 'saved'" key="saved">  Edit </button> <button v-if="docState === 'edited'" key="edited">  Save </button> <button v-if="docState === 'editing'" key="editing">  Cancel </button></transition>

可以重寫為:

<transition> <button v-bind:key="docState">  {{ buttonMessage }} </button></transition>
computed: { buttonMessage: function () {  switch (this.docState) {   case 'saved': return 'Edit'   case 'edited': return 'Save'   case 'editing': return 'Cancel'  } }}

過渡模式

在元素之間的過渡中,還存在一個問題:兩個元素都被重繪了,一個離開過渡的時候另一個開始進入過渡。這是 <transition>的默認行為 - 進入和離開同時發生。

有一種最原始的解決方法就是,在元素絕對定位在彼此之上的時候運行正常。

還有一種方法就是使用Vue 提供的過渡模式.

    in-out: 新元素先進行過渡,完成之后當前元素過渡離開。 out-in: 當前元素先進行過渡,完成之后新元素過渡進入。

用 out-in重寫之前的開關按鈕過渡:

<transition name="fade" mode="out-in"> <!-- ... the buttons ... --></transition>

多元素過渡的例子

v-if和v-else的絕對定位實例

<div class="my-div" id="app">  <transition name="fade">    <button class="btn" :key="show" @click="show=!show">{{show ? 'on' : 'off'}}</button>    <!--<button key="on" v-if="show" class="btn" @click="show = !show">on</button>-->    <!--<button key="off" v-else class="btn" @click="show = !show">off</button>-->  </transition></div>            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 秭归县| 梅河口市| 扎鲁特旗| 乾安县| 攀枝花市| 漳州市| 太原市| 达州市| 三明市| 江西省| 乐都县| 依安县| 宁化县| 大宁县| 泰顺县| 华容县| 蒙城县| 大新县| 肥西县| 东光县| 宣威市| 绵阳市| 大洼县| 湘阴县| 乐安县| 浦县| 策勒县| 涪陵区| 东城区| 岢岚县| 杨浦区| 金溪县| 黎城县| 烟台市| 沧州市| 阜南县| 自治县| 杭锦后旗| 新郑市| 加查县| 白朗县|