Vue的過渡效果是非常炫酷的,讓我們的網頁更加生動。而其中enter過渡就是在一個元素在插入到DOM中時,會有一個過渡效果的動畫。
下面我們看一個例子:在點擊按鈕之后,會動態地添加一個新元素。而這個新元素加入的時候會有一個enter過渡效果。
<div id="app">
<button @click="addNewElement">添加元素</button>
<transition name="fade">
<div v-for="(element,index) in elements" :key="index">
{{element}}
</div>
</transition>
</div>
在上面的代碼中,我們使用了Vue自帶的transition組件來實現enter過渡效果,并為其添加了一個name屬性,并且賦值為“fade”。接著,我們又使用了一個v-for指令來循環生成幾個div元素,并向頁面添加一些元素。這些元素后續在執行添加操作時也會有enter過渡效果。
new Vue({
el: '#app',
data () {
return {
elements: []
}
},
methods: {
addNewElement () {
this.elements.push('new element')
}
}
})
在上面的代碼中,我們定義了一個Vue實例,并在data中添加了一個數組元素elements。而在methods中我們添加了一個方法addNewElement,該方法向elements數組中插入一個元素“new element”。當我們點擊按鈕時,該方法會被調用,從而實現動態添加元素的功能。
接下來,我們為“fade”這個名字添加CSS樣式,從而使得動態添加元素時,元素加入頁面時會有一個過渡效果。
.fade-enter-active, .fade-leave-active {
transition: opacity .5s;
}
.fade-enter, .fade-leave-to {
opacity: 0;
}
在上面的代碼中,我們為“.fade-enter-active”和“.fade-leave-active”添加CSS過渡效果,指定了opacity屬性變化時的過渡時間。此外,我們還為“.fade-enter”和“.fade-leave-to”添加了樣式,元素加入和離開頁面時的透明度都為0,這樣就實現了一個類似于淡入淡出的效果。
最后,我們再來看一下效果。每次點擊添加元素按鈕時,就會動態添加一個新元素,新元素會執行類似于淡入淡出的動畫效果。這就是使用Vue的enter過渡效果的效果,非常好看。