Rumah >hujung hadapan web >View.js >Bagaimanakah pemadanan laluan dilakukan dalam Penghala Vue?

Bagaimanakah pemadanan laluan dilakukan dalam Penghala Vue?

王林
王林asal
2023-07-22 14:49:061677semak imbas

Vue Router ialah pengurus penghalaan rasmi Vue.js. Ia boleh membantu kami menukar dan melompat antara halaman dalam aplikasi satu halaman, menjadikan aplikasi web mempunyai pengalaman pengguna yang lebih baik. Salah satu fungsi teras dalam Penghala Vue ialah padanan laluan Artikel ini akan memperkenalkan cara pemadanan laluan dilakukan dalam Penghala Vue.

Dalam Penghala Vue, pemadanan laluan diselesaikan melalui jadual penghalaan (Jadual Laluan). Jadual penghalaan ditakrifkan oleh pembangun, dan setiap item jadual penghalaan mengandungi laluan, komponen yang sepadan dan konfigurasi berkaitannya. Apabila membuat contoh Penghala Vue, kita boleh menentukan jadual penghalaan dengan menghantar objek konfigurasi penghalaan.

import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from './components/Home.vue'
import About from './components/About.vue'
import NotFound from './components/NotFound.vue'

Vue.use(VueRouter)

const routes = [
  { path: '/', component: Home },
  { path: '/about', component: About },
  { path: '*', component: NotFound },
]

const router = new VueRouter({
  routes
})

export default router

Tiga entri jadual penghalaan ditakrifkan dalam kod di atas. { path: '/' } menunjukkan laluan akar, dan komponen yang sepadan ialah Home { path: '/about' } menunjukkan laluan ialah /about, komponen yang sepadan ialah About; { path: '*' } mewakili laluan lain yang tidak sepadan, komponen yang sepadan ialah Tidak Ditemui. { path: '/' } 表示根路径,对应的组件为 Home{ path: '/about' } 表示路径为 /about,对应的组件为 About{ path: '*' } 表示其他未匹配到的路径,对应的组件为 NotFound

在运行时,当用户访问某个路径时,Vue Router 会根据当前的路径进行匹配,找到对应的路由表项。Vue Router 提供了两种匹配模式:基于 Hash(Hash Mode)和基于 History(History Mode)。

基于 Hash 的匹配模式通过监听 location.hash 的变化来实现路由匹配。例如,当用户访问 /about 路径时,location.hash 的值会变为 #/about,Vue Router 会根据这个 hash 值来匹配到对应的路由表项,并加载相应的组件。

基于 History 的匹配模式使用 HTML5 的 History API,通过监听 location.pathname 的变化来实现路由匹配。例如,当用户访问 /about 路径时,location.pathname 的值会变为 /about,Vue Router 会根据这个路径名来匹配到对应的路由表项,并加载相应的组件。

Vue Router 内部实现了一个路由匹配的算法。它会将路由路径按照 / 进行分割,然后依次进行匹配。对于每个路径段(path segment),Vue Router 会依次判断是否匹配当前路由表项的路径段。

路由匹配支持动态参数,我们可以在路由表项的路径中使用动态参数。例如,{ path: '/user/:id' } 中的 :id 就是一个动态参数。在实际的匹配过程中,当路径中的 id

Pada masa jalan, apabila pengguna mengakses laluan tertentu, Penghala Vue akan memadankan laluan semasa dan mencari entri jadual penghalaan yang sepadan. Penghala Vue menyediakan dua mod padanan: berasaskan hash (Mod Hash) dan berasaskan Sejarah (Mod Sejarah).

Mod padanan berasaskan cincang melaksanakan padanan laluan dengan memantau perubahan dalam location.hash. Contohnya, apabila pengguna mengakses laluan /about, nilai location.hash akan bertukar kepada #/about dan Vue Router akan gunakan nilai cincang ini untuk Untuk memadankan entri jadual penghalaan yang sepadan dan muatkan komponen yang sepadan.

Mod padanan berasaskan sejarah menggunakan API Sejarah HTML5 untuk melaksanakan padanan laluan dengan memantau perubahan dalam location.pathname. Contohnya, apabila pengguna mengakses laluan /about, nilai location.pathname akan bertukar kepada /about dan Vue Router akan menggunakan nama laluan ini kepada Padankan entri jadual penghalaan yang sepadan dan muatkan komponen yang sepadan.

Vue Router secara dalaman melaksanakan algoritma pemadanan laluan. Ia akan memisahkan laluan penghalaan mengikut /, dan kemudian memadankannya mengikut turutan. Untuk setiap segmen laluan, Penghala Vue akan menentukan sama ada ia sepadan dengan segmen laluan entri jadual penghalaan semasa. 🎜🎜Padanan laluan menyokong parameter dinamik Kita boleh menggunakan parameter dinamik dalam laluan entri jadual penghalaan. Contohnya, :id dalam { path: '/user/:id' } ialah parameter dinamik. Semasa proses pemadanan sebenar, apabila bahagian id laluan berubah, Vue Router akan memadankan semula dan menghantar nilai parameter dinamik kepada komponen. 🎜🎜Selain padanan laluan, Penghala Vue juga menyokong keadaan padanan lain, seperti ubah hala (Redirect) dan alias (Alias). Dengan mengkonfigurasi keadaan padanan ini, kami boleh mengawal kelakuan penghalaan dengan lebih fleksibel. 🎜🎜Untuk meringkaskan, pemadanan laluan dalam Penghala Vue dilakukan melalui jadual penghalaan. Jadual penghalaan ditakrifkan oleh pembangun, dan setiap entri jadual penghalaan mengandungi laluan dan komponen yang sepadan serta konfigurasi berkaitannya. Pada masa jalan, Penghala Vue akan memadankan laluan semasa, mencari entri jadual penghalaan yang sepadan dan memuatkan komponen yang sepadan. Padanan laluan menyokong parameter dinamik dan tingkah laku laluan boleh dikawal dengan mengkonfigurasi keadaan padanan yang lain. 🎜🎜Saya harap artikel ini dapat membantu pembaca memahami proses pemadanan laluan dalam Penghala Vue dan dapat menggunakannya secara fleksibel dalam projek sebenar. 🎜

Atas ialah kandungan terperinci Bagaimanakah pemadanan laluan dilakukan 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