Vue.jsでのトランジションを使用すると、要素やコンポーネントの表示や非表示をスムーズに演出できます。Vue.jsは、CSSトランジションやアニメーションを簡単に組み込むことができるため、ユーザーインターフェースがより魅力的になります。
1. トランジションの基本
Vueでは、<transition>
ラッパータグを使用して、要素の入出力を制御します。このタグ内に置かれた要素は、Vueが自動的にトランジションのフックを適用します。CSSクラスを利用してアニメーションを制御するのが一般的です。
2. CSSトランジションの使用
トランジションの際には、以下のクラスが自動的に適用・削除されます:
v-enter
: トランジションの開始状態。要素が挿入されるときに適用され、一度だけ発生します。v-enter-active
: トランジション中常に適用される状態。トランジション全体を通じて有効です。v-enter-to
:v-enter
が削除された後の最終状態。v-leave
: トランジションの終了状態。要素が削除されるときに適用されます。v-leave-active
: トランジション中常に適用される状態。v-leave-to
:v-leave
が削除された後の最終状態。
3. JavaScriptフックの使用
CSSだけでなく、JavaScriptフックを使ってより複雑なトランジションを制御することもできます。<transition>
タグの属性として、以下のフックを定義できます:
before-enter
enter
after-enter
enter-cancelled
before-leave
leave
after-leave
leave-cancelled
これらのフックを使用して、アニメーション開始前後の動作や、トランジションのキャンセル時の動作を指定できます。
4. 例
以下は基本的なフェードトランジションの例です:
<template>
<div>
<button @click="show = !show">Toggle</button>
<transition name="fade">
<p v-if="show">Hello, Vue.js!</p>
</transition>
</div>
</template>
<style>
.fade-enter-active, .fade-leave-active {
transition: opacity 0.5s;
}
.fade-enter, .fade-leave-to /* .fade-leave-active in <2.1.8 */ {
opacity: 0;
}
</style>
この例では、<p>
要素がフェードインおよびフェードアウトするトランジションを見ることができます。show
データプロパティが変更されると、トランジションがトリガーされます。
Vueのトランジションは非常に強力で、ユーザーエクスペリエンスを向上させるための多くの可能性を提供します。適切に使用することで、アプリケーションの見た目を大きく改善できます。
コメント