Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimanakah animasi peralihan penghalaan dilaksanakan dalam Penghala Vue?

Bagaimanakah animasi peralihan penghalaan dilaksanakan dalam Penghala Vue?

PHPz
PHPzasal
2023-07-23 16:13:561543semak imbas

Bagaimana animasi peralihan penghalaan dilaksanakan dalam Penghala Vue?

Vue Router ialah pemalam pengurusan penghalaan yang disediakan secara rasmi oleh Vue.js Ia boleh mengatur dan mengurus laluan halaman dengan mudah Ia juga menyediakan beberapa ciri untuk meningkatkan pengalaman pengguna, seperti animasi peralihan penghalaan. Melalui kesan animasi ini, penukaran halaman boleh dibuat lebih lancar dan lancar, memberikan pengguna kesan visual dan pengalaman interaktif yang lebih baik. Jadi, bagaimanakah animasi peralihan laluan dalam Penghala Vue dilaksanakan? Mari kita bincangkan perkara ini secara terperinci di bawah.

Mula-mula, kita perlu memasang pemalam Vue Router dan memperkenalkannya dalam contoh Vue:

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

Vue.use(VueRouter)

Seterusnya, kita perlu menentukan animasi peralihan apabila menukar halaman dalam konfigurasi penghalaan. Penghala Vue menyediakan dua fungsi cangkuk untuk mengawal masa pencetus animasi peralihan, iaitu beforeEnter dan leave. Kita boleh menetapkan dua fungsi cangkuk ini dalam setiap objek penghalaan dalam konfigurasi penghalaan untuk mengawal kesan animasi apabila masuk dan keluar. beforeEnterleave。我们可以在路由配置的每个路由对象中设置这两个钩子函数,来控制进入和离开时的动画效果。

首先,我们来定义页面进入时的过渡动画。在路由配置中,如果希望给某个路由对象设置进入动画,可以在该路由对象中添加beforeEnter钩子函数,并在其中使用Vue的过渡动画模块300ff3b250bc578ac201dd5fb34a0004来定义动画效果。例如:

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函数中传入的回调函数中执行页面进入的动画效果,首先将页面元素的transformopacity属性设置为需要的动画初始状态,然后通过setTimeout函数将动画属性设置为需要的最终状态。

接下来,我们来定义页面离开时的过渡动画。在路由配置中,如果希望给某个路由对象设置离开动画,可以在该路由对象中添加leave钩子函数,并在其中使用Vue的过渡动画模块300ff3b250bc578ac201dd5fb34a0004来定义动画效果。例如:

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)
    }
  },
  // ...
]

在上述代码中,我们通过在leave钩子函数中将页面元素的transformopacity属性设置为需要的动画最终状态,并通过setTimeout函数延迟300毫秒后执行next

Pertama, mari kita tentukan animasi peralihan apabila halaman masuk. Dalam konfigurasi penghalaan, jika anda ingin menetapkan animasi masukan untuk objek penghalaan, anda boleh menambah fungsi cangkuk beforeEnter pada objek penghalaan dan menggunakan modul animasi peralihan Vue 300ff3b250bc578ac201dd5fb34a0004 /code> untuk menentukan kesan animasi. Contohnya: <p><pre class='brush:javascript;toolbar:false;'>const router = new VueRouter({ routes }) const app = new Vue({ router }).$mount('#app')</pre></p>Dalam kod di atas, kami akan melaksanakan kesan animasi kemasukan halaman dalam fungsi panggil balik yang diluluskan dalam fungsi <code>next dalam fungsi cangkuk beforeEnter , halaman Sifat transform dan opacity elemen ditetapkan kepada keadaan awal animasi yang diperlukan, dan kemudian sifat animasi ditetapkan kepada keadaan akhir yang diperlukan melalui Fungsi setTimeout.

Seterusnya, mari kita tentukan animasi peralihan apabila halaman keluar. Dalam konfigurasi penghalaan, jika anda ingin menetapkan animasi cuti untuk objek penghalaan, anda boleh menambah fungsi cangkuk leave pada objek penghalaan dan menggunakan modul animasi peralihan Vue <transition&gt untuk menentukan kesan animasi. Contohnya: <p>rrreee</p>Dalam kod di atas, kami menetapkan atribut <code>transform dan opacity elemen halaman kepada yang diperlukan dalam cuti fungsi cangkuk Keadaan akhir animasi dan fungsi setTimeout digunakan untuk menangguhkan pelaksanaan fungsi next selama 300 milisaat untuk mengawal pelaksanaan animasi meninggalkan. 🎜🎜Akhir sekali, kami perlu mencipta tika Vue Router dalam tika Vue dan lulus dalam konfigurasi penghalaan: 🎜rrreee🎜Melalui langkah di atas, kami telah berjaya melaksanakan animasi peralihan penghalaan dalam Penghala Vue. Apabila kami menukar halaman, Penghala Vue secara automatik akan mencetuskan animasi peralihan peralihan penghalaan, memberikan pengguna kesan penukaran halaman yang lebih lancar dan sejuk. 🎜🎜Ringkasnya, dengan menggunakan fungsi cangkuk Vue Router dan modul animasi peralihan Vue, kami boleh melaksanakan animasi peralihan laluan dengan mudah dan meningkatkan pengalaman pengguna. Pengaturcara boleh menyesuaikan pelbagai kesan animasi mengikut keperluan dan kreativiti mereka sendiri untuk menjadikan halaman lebih hidup dan menarik. Saya berharap pengenalan artikel ini dapat memperdalam pemahaman anda tentang animasi peralihan penghalaan Vue Router dan membawa anda sedikit bantuan dalam pembangunan sebenar. 🎜

Atas ialah kandungan terperinci Bagaimanakah animasi peralihan penghalaan dilaksanakan dalam Penghala Vue?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn