Vue Router adalah penghala rasmi untuk Vue.js, kerangka JavaScript yang progresif. Ia adalah komponen penting untuk membina aplikasi satu halaman (SPA) kerana ia membolehkan anda menguruskan navigasi dan penghalaan dalam permohonan anda tanpa memerlukan muat semula halaman penuh. Sebaliknya, ia hanya mengemas kini bahagian halaman yang diperlukan, mewujudkan pengalaman pengguna yang lebih lancar dan lebih responsif.
Untuk menggunakan Vue Router untuk navigasi spa, anda perlu memasangnya terlebih dahulu menggunakan npm atau benang:
<code class="bash">npm install vue-router # or yarn add vue-router</code>
Kemudian, anda membuat contoh penghala:
<code class="javascript">import { createRouter, createWebHistory } from 'vue-router'; import Home from './components/Home.vue'; import About from './components/About.vue'; import Contact from './components/Contact.vue'; const routes = [ { path: '/', component: Home }, { path: '/about', component: About }, { path: '/contact', component: Contact }, ]; const router = createRouter({ history: createWebHistory(), routes, }); export default router;</code>
Kod ini mewujudkan laluan untuk tiga komponen ( Home
, About
, Contact
). createWebHistory
menggunakan API Sejarah Pelayar untuk URL yang bersih. Anda juga boleh menggunakan createMemoryHistory
untuk pengujian atau penyampaian sisi pelayan.
Akhirnya, anda perlu menggunakan contoh penghala dalam aplikasi utama anda:
<code class="javascript">import { createApp } from 'vue'; import App from './App.vue'; import router from './router'; createApp(App).use(router).mount('#app');</code>
Sekarang, menavigasi ke /about
atau /contact
akan menjadikan komponen yang sepadan tanpa tambah nilai halaman penuh. Pautan dalam permohonan anda boleh menggunakan komponen <router-link></router-link>
:
<code class="vue"><router-link to="/about">About</router-link></code>
Laluan bersarang membolehkan anda membuat struktur hierarki dalam aplikasi anda, mencerminkan menu navigasi bersarang atau struktur organisasi. Ini dicapai dengan mendefinisikan laluan kanak -kanak dalam harta children
laluan ibu bapa.
<code class="javascript">const routes = [ { path: '/users', component: Users, // Parent component children: [ { path: ':id', component: UserDetail }, // Child route with parameter { path: 'new', component: UserCreate }, // Child route ], }, ];</code>
Dalam contoh ini, /users
adalah laluan induk. /users/:id
adalah laluan kanak -kanak dengan segmen dinamik :id
, mewakili ID pengguna. /users/new
adalah satu lagi laluan kanak -kanak untuk membuat pengguna baru. Mengakses Parameter :id
Komponen UserDetail
dilakukan melalui Objek $route
:
<code class="javascript"><template> <p>User ID: {{ $route.params.id }}</p> </template></code>
Parameter laluan membolehkan anda lulus data melalui URL, menjadikan aplikasi anda lebih dinamik. Mereka ditakrifkan menggunakan kolon ( :
sebelum nama parameter di jalan.
Penstrukturan laluan anda dengan berkesan adalah penting untuk mengekalkan dan berskala. Berikut adalah beberapa amalan terbaik:
name
. Ini memudahkan navigasi dan menjadikan kod anda lebih bersih:<code class="javascript">{ path: '/about', name: 'About', component: About }</code>
Kemudian navigasi menggunakan nama:
<code class="javascript">this.$router.push({ name: 'About' })</code>
beforeEnter
, beforeEach
) untuk mengawal akses kepada laluan tertentu berdasarkan pengesahan atau keadaan lain.push
, replace
, go
)?Vue Router menyediakan beberapa kaedah untuk navigasi:
push(location)
: Ini adalah kaedah yang paling biasa. Ia menambah entri sejarah baru, yang membolehkan pengguna kembali ke halaman sebelumnya menggunakan butang belakang penyemak imbas.replace(location)
: Ini juga menavigasi ke lokasi baru tetapi menggantikan entri semasa dalam timbunan sejarah. Pengguna tidak akan dapat kembali ke halaman sebelumnya menggunakan butang belakang.go(n)
: Kaedah ini menggerakkan tumpukan sejarah ke hadapan atau ke belakang dengan langkah -langkah n
go(1)
bersamaan dengan mengklik butang ke hadapan, manakala go(-1)
bersamaan dengan mengklik butang belakang.Inilah jadual yang meringkaskan perbezaan:
Kaedah | Menambah entri sejarah | Menggantikan entri semasa | Fungsi butang belakang |
---|---|---|---|
push
|
Ya | Tidak | Didayakan |
replace
|
Tidak | Ya | Kurang upaya |
go(n)
|
Bergantung pada n
|
Bergantung pada n
|
Bergantung pada n
|
Memilih kaedah yang betul bergantung kepada keperluan khusus anda. push
biasanya lebih disukai untuk kebanyakan senario navigasi, sementara replace
berguna untuk situasi di mana anda tidak mahu pengguna dapat kembali ke halaman sebelumnya (misalnya, selepas penyerahan borang yang berjaya). go
menyediakan lebih banyak kawalan berbutir ke atas timbunan sejarah.
Atas ialah kandungan terperinci Apakah Vue Router dan bagaimana saya menggunakannya untuk navigasi aplikasi tunggal halaman (SPA)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!