Rumah > Artikel > hujung hadapan web > Berapakah jenis fungsi cangkuk penghalaan vue yang ada? Apakah perbezaannya?
Terdapat 2 jenis fungsi cangkuk penghalaan Vue, iaitu: 1. Pengawal global (fungsi cangkuk global), yang merujuk kepada objek penghala dalam "index.js" 2. Pengawal penghalaan (untuk penghalaan tunggal fungsi cangkuk) ); 3. Pengawal komponen (fungsi cangkuk peringkat komponen) ialah pengadang yang ditakrifkan di dalam komponen penghalaan.
Persekitaran pengendalian tutorial ini: sistem Windows 7, vue versi 2.9.6, komputer DELL G3.
vue-router
fungsi cangkuk sebenarnya merujuk kepada Pengawal Navigasi.
Memetik tapak web rasmi
“Navigasi” menunjukkan bahawa penghalaan sedang berubah. Pengawal navigasi yang disediakan oleh
vue-router
digunakan terutamanya untuk menjaga navigasi dengan melompat atau membatalkan. Terdapat berbilang peluang untuk membina proses navigasi laluan: secara global, eksklusif untuk satu laluan, atau pada peringkat komponen.
Iaitu: Pengawal global (fungsi cangkuk global) , Pengadang penghalaan (untuk fungsi cangkuk penghalaan tunggal) , Pengadang komponen (komponen fungsi cangkuk aras) .
Sediakan persekitaran secara ringkas dahulu
index.js
import { createRouter, createWebHashHistory } from 'vue-router'; const router = createRouter({ history: createWebHashHistory(), routes: [ { path: '/a', component: () => import('../components/A.vue'), }, { path: '/b', component: () => import('../components/B.vue'), }, { path: '/c', component: () => import('../components/C.vue'), }, ], }); export default router;
utama . > Halaman C
// index.js import router from "./router"; createApp(App).use(router).mount("#app");
Komponen Biasa
<template> <div> <h1>我是页面A啊</h1> <comp></comp> </div> </template>
Halaman sekarang macam ni, agak hodoh, tengok saja untuk suka-suka, kami bukan di sini untuk mempelajari
<template> <div> <h1>我是页面B啊</h1> <comp></comp> </div> </template>
pengawal global
, seperti namanya, akan ditakrifkan secara global, iaitu,<template> <div> <h1>我是页面C啊</h1> <comp></comp> </div> </template>objek dalam
kami. beforeEach
<template> <div>我是公用组件啊</div> </template>Pengadang hadapan global, dicetuskan sebelum lompat laluan, ia akan dicetuskan setiap kali
navigasicss
.
Daftar pengawal hadapan global melalui .
index.js
Parameterrouter
ke: Laluan
: Objek laluan sasaran yang akan masukrouter.beforeEach
: Objek laluan yang akan ditinggalkan oleh navigasi semasa
beforeEach
Mengganggu navigasi semasa. Kembali ke alamat yang sepadan dengan laluan . next
melompat ke alamat yang berbeza Parameter yang boleh dihantar adalah sama dengan pilihan dalam next()
.
from
router.push
router.onError()
Tentukan berbilang pengawal
Berbilang pengawal hadapan global boleh ditakrifkan dan dipanggil mengikut susunan penciptaan. Navigasi sedang menunggu sehingga semua pengawal selesai. Dalam contoh berikut, kami mentakrifkan duapengawal dalam komponenbeforeEach
dan
dicetuskan selepas ia dihuraikan, ia adalah sama Dipecat setiap kali dilayari
.Daftarkan pengawal penghuraian global melalui
.beforeEach
Kait tiang global, ia berlaku selepas lompatan laluan selesai, selepas beforeEach
dan beforeResolve
, dan sebelum beforeRouteEnter
(pengawal dalam komponen). Ia juga menyala setiap kali anda menavigasi.
Daftar posthook global melalui router.afterEach
.
Dua parameter cangkuk ini adalah sama seperti beforeEach
dan to
dalam from
. Walau bagaimanapun, tidak seperti cangkuk global yang lain, cangkuk ini tidak akan menerima fungsi next
dan juga tidak akan menukar navigasi itu sendiri.
Seperti namanya, ia adalah cangkuk yang berkaitan dengan penghalaan Kami hanya mempunyai satu pengawal laluan, iaitu beforeEnter
.
perlu mentakrifkan pengawalan beforeEnter
pada konfigurasi penghalaan ini hanya dicetuskan apabila memasuki laluan Ia akan dilaksanakan serta-merta selepas beforeEach
dan tidak akan dilaksanakan selepas params
atau atau query
berubah. hash
Parameter pengawal laluan ialah beforeEnter
, to
, from
, sama seperti next
. beforeEach
dan pengawal laluan beforeEach
, global beforeEnter
dan global Dipanggil sebelum beforeResolve
. Parameter afterEach
, to
, from
. next
ialah this
, iaitu, ia dicetuskan sebelum undefined
kitaran hayat. beforeCreate
, beforeRouteUpdate
sudah tersedia, jadi tidak perlu menghantar panggilan balik ke this
. next
, beforeRouteLeave
sudah tersedia, jadi tidak perlu menghantar panggilan balik ke this
. next
Di atas ialah jawapan rasmi Sekarang kami menggunakan carta alir untuk menunjukkannya secara intuitif. Cadangan berkaitan: "Navigasi dicetuskan.
- Panggil
- pengawal dalam komponen yang dinyahaktifkan.
memanggil pengawalbeforeRouteLeave
- global.
PanggilbeforeEach
- pengawal dalam komponen yang digunakan semula.
PanggilbeforeRouteUpdate
- dalam konfigurasi penghalaan.
Selesaikan komponen penghalaan tak segerak.beforeEnter
- Panggil
- dalam komponen yang diaktifkan.
memanggil pengawalbeforeRouteEnter
- global.
Navigasi disahkan.beforeResolve
- memanggil cangkuk
- global.
mencetuskanafterEach
- kemas kini.
memanggil fungsi panggil balik yang diserahkan kepadaDOM
- dalam pengawal
beforeRouteEnter
, dan tika komponen yang dibuat akan dihantar masuk sebagai parameter fungsi panggil balik.next
tutorial vue.js"
Atas ialah kandungan terperinci Berapakah jenis fungsi cangkuk penghalaan vue yang ada? Apakah perbezaannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!