71
Vue 3 學習之旅
過渡與動畫

Day 71: <Transition> 元件

·6 分鐘閱讀·過渡與動畫

摘要

<Transition> 是一個內建的包裝元件,它能為單一元素或元件的「進入」和「離開」過程,自動應用過渡動畫。

定義與說明

<Transition> 只能包裹一個子元素。當其子元素因 v-ifv-show 或動態元件切換而被插入或移除 DOM 時,<Transition> 會在適當的時機,自動為該元素新增或移除一系列的 CSS class,讓我們可以透過 CSS 來定義過渡動畫。

實作範例

Transition 元件示例
<script setup>
import { ref } from 'vue';
const show = ref(true);
</script>

<template>
  <button @click="show = !show">切換</button>
  <Transition name="fade">
    <p v-if="show">你好,世界</p>
  </Transition>
</template>

<style>
/* 定義名為 'fade' 的過渡效果 */
.fade-enter-active, .fade-leave-active { transition: opacity 0.5s ease; }
.fade-enter-from, .fade-leave-to { opacity: 0; }
</style>

結論

<Transition> 提供了一個簡單、宣告式的方式來為元素的出現與消失添加動畫,是讓使用者介面更生動、更具吸引力的基礎工具。

Transition 動畫 過渡效果