vue的過渡小記(多元素、多元件)

LIJING0906發表於2018-11-20

此文首發於 lijing0906.github.io

網頁中,一般都存在切換的場景,vue提供了一個簡單的切換過渡效果,用< transition>標籤包裹要切換的部分即可。

多元素過渡

繫結key

vue官網上有寫到:

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

示例程式碼:

    <transition>
        <button v-if="isEditing" key="save">Save</button>
        <button v-else key="edit">Edit</button>
    </transition>
複製程式碼

上面栗子可以簡寫為:

    <transition>
        <button :key="isEditing">{{isEditing ? 'Save' : 'Edit'}}</button>
    </transition>
複製程式碼

過渡模式

vue提供兩種過渡模式

  • in-out 新元素先進行過渡,完成之後當前元素過渡離開
  • out-in 當前元素先進行過渡,完成之後新元素過渡進入
    <transition mode="in-out" name="fade">
        <!-- name屬性的值是便於寫樣式 -->
    </transition>
複製程式碼

多元件過渡

多個元件過渡,就不需要 key 特性,使用動態元件就OK

相關文章