ホームページ > ウェブフロントエンド > Vue.js > Vue Router ではルーティング遷移アニメーションはどのように実装されていますか?

Vue Router ではルーティング遷移アニメーションはどのように実装されていますか?

PHPz
リリース: 2023-07-23 16:13:56
オリジナル
1584 人が閲覧しました

Vue Router ではルーティング遷移アニメーションはどのように実装されていますか?

Vue Router は、Vue.js が公式に提供するルーティング管理プラグインで、ページのパスを簡単に整理、管理でき、ルーティング遷移アニメーションなど、ユーザー エクスペリエンスを向上させる機能も提供します。これらのアニメーション効果により、ページの切り替えがよりスムーズになり、ユーザーに優れた視覚効果とインタラクティブなエクスペリエンスを提供します。では、Vue Router のルート遷移アニメーションはどのように実装されているのでしょうか?これについては以下で詳しく説明します。

まず、Vue Router プラグインをインストールし、Vue インスタンスに導入する必要があります。

import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)
ログイン後にコピー

次に、ルーティング設定でページを切り替えるときの遷移アニメーションを定義する必要があります。 Vue Router には、遷移アニメーションのトリガー タイミングを制御するための 2 つのフック関数 (beforeEnterleave) が用意されています。ルーティング設定の各ルーティング オブジェクトにこれら 2 つのフック関数を設定して、出入り時のアニメーション効果を制御できます。

まず、ページに入ったときの遷移アニメーションを定義しましょう。ルーティング設定で、ルーティング オブジェクトのエントリ アニメーションを設定したい場合は、ルーティング オブジェクトに beforeEnter フック関数を追加し、Vue のトランジション アニメーション モジュール <transition> アニメーション効果を定義します。例:

const routes = [
  {
    path: '/',
    name: 'Home',
    component: Home,
    // 定义进入动画
    beforeEnter: (to, from, next) => {
      next(vm => {
        const el = vm.$el.getElementsByClassName('app')[0]
        el.style.transform = 'translate(0, 100%)'
        el.style.opacity = '0'
        setTimeout(() => {
          el.style.transition = 'transform 0.3s, opacity 0.3s'
          el.style.transform = 'translate(0, 0)'
          el.style.opacity = '1'
        }, 0)
      })
    }
  },
  // ...
]
ログイン後にコピー

上記のコードでは、beforeEnter フック関数の next 関数に渡されるコールバック関数でページ エントリのアニメーション効果を実行します。まず、ページ要素の transform プロパティと opacity プロパティをアニメーションの必要な初期状態に設定し、次に setTimeout を通じてアニメーション プロパティを必要な最終状態に設定します。 ### 関数。

次に、ページが移動するときの遷移アニメーションを定義しましょう。ルーティング設定で、ルーティング オブジェクトに離脱アニメーションを設定したい場合は、ルーティング オブジェクトに

leavehook 関数を追加し、Vue のトランジション アニメーション モジュール <transition> アニメーション効果を定義します。例:

const routes = [
  // ...
  {
    path: '/about',
    name: 'About',
    component: About,
    // 定义离开动画
    leave: (to, from, next) => {
      const el = document.getElementsByClassName('app')[0]
      el.style.transition = 'transform 0.3s, opacity 0.3s'
      el.style.transform = 'translate(0, 100%)'
      el.style.opacity = '0'
      setTimeout(next, 300)
    }
  },
  // ...
]
ログイン後にコピー

上記のコードでは、ページ要素の

transform プロパティと opacity プロパティを leave## で必要な値に設定します。 # フック関数 アニメーションの最終状態。setTimeout 関数は 300 ミリ秒遅延され、その後 next 関数が実行されて、退出アニメーションの実行を制御します。 最後に、Vue インスタンスで Vue Router インスタンスを作成し、ルーティング設定を渡す必要があります。

const router = new VueRouter({
  routes
})

const app = new Vue({
  router
}).$mount('#app')
ログイン後にコピー

上記の手順を通じて、Vue Router にルーティング遷移アニメーションを正常に実装しました。 。ページを切り替えると、Vue Router は自動的にルート切り替えトランジション アニメーションをトリガーし、ユーザーによりスムーズでクールなページ切り替え効果を与えます。

まとめると、Vue Router のフック関数と Vue の遷移アニメーション モジュールを使用することで、ルーティング遷移アニメーションを簡単に実装し、ユーザー エクスペリエンスを向上させることができます。プログラマーは、自分のニーズと創造性に応じてさまざまなアニメーション効果をカスタマイズして、ページをより生き生きとした興味深いものにすることができます。この記事を紹介することで、Vue Router のルーティング遷移アニメーションについての理解が深まり、実際の開発に少しでもお役に立てれば幸いです。

以上がVue Router ではルーティング遷移アニメーションはどのように実装されていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート