


[Kompilasi dan perkongsian] Beberapa soalan temu bual berkaitan vue-router (dengan analisis jawapan)
Artikel ini meringkaskan dan berkongsi beberapa soalan temu bual berkaitan vue-router (dengan analisis jawapan) untuk membantu anda menyusun pengetahuan asas dan meningkatkan rizab pengetahuan vue-router anda Perlu dikumpulkan, datang dan lihat!
Prinsip vue-router
Dalam aplikasi satu halaman, penukaran antara komponen yang berbeza perlu dilaksanakan melalui hadapan- penghalaan tamat.
Penghalaan bahagian hadapan
1 kekunci ialah laluan, nilai ialah komponen, digunakan untuk memaparkan kandungan halaman
2. Proses kerja: apabila laluan pelayar berubah, komponen yang sepadan akan dipaparkan. Fungsi penghalaan vue-router
: memetakan komponen ke laluan, dan kemudian menjadikannya
Perkara utama ialah
Bagaimana untuk tukar URL tetapi tidak Menyebabkan muat semula halaman
Cara mengesan perubahan URL [Cadangan berkaitan: tutorial video vuejs, pembangunan bahagian hadapan web ]
Corak hash penghalaan
hash ialah sebahagian daripada
#
dan mengikut URL, tidak akan dihantar ke pelayan,#
jadi menukar bahagian cincang URL tidak akan menyebabkan halaman dimuat semula- tetingkap boleh mendengar
perubahan acara. Apabila cincang berubah, baca kandungan selepas
onhashchange
, padankan peraturan penghalaan berdasarkan maklumat dan tukar penghalaan halaman dengan menukar#
.window.location.hash
Tiga cara untuk menukar URL
- Tukar URL melalui penyemak imbas ke hadapan dan ke belakang
- Tukar URL melalui teg
- Tukar URL melalui tetingkap.lokasi
Kelebihan
- Hanya bahagian hadapan perlu mengkonfigurasi jadual penghalaan, tiada penyertaan bahagian belakang diperlukan
- Keserasian yang baik, semua pelayar menyokongnya
- Perubahan dalam nilai cincang tidak akan menghantar permintaan ke bahagian belakang, ia sepenuhnya di hadapan- penghalaan tamat
Kelemahan
- Nilai cincang perlu didahului dengan #, yang tidak mematuhi spesifikasi url dan adalah tidak cantik.
Mod Sejarah Penghalaan - Gunakan kaedah dan baharu dalam antara muka sejarah HTML5 untuk menambah dan mengubah suai sejarah penyemakan imbas menggunakan API sejarah H5
pushState()
Rekod, tukar laluan halaman,replaceState()
buat URL melompat tanpa memuatkan semula halaman.- Acara
serupa dengan acara
hashchange
, tetapi acara popstate sedikit berbeza:popstate
popState hanya akan dipanggil selepas melakukan
tindakan penyemak imbas , ia akan dicetuskan apabila pengguna mengklik butang belakang dan butang hadapan penyemak imbas, atau menggunakan JavaScript untuk memanggil kaedah History.back(), History.forward(), dan History.go().
Kelebihan
- Mematuhi spesifikasi alamat URL, tidak memerlukan # dan lebih cantik untuk digunakan
Kelemahan
- Apabila pengguna
- memasukkan alamat secara manual atau memuat semula halaman, permintaan url akan dimulakan , dan bahagian belakang perlu mengkonfigurasi halaman index.html Pengguna tidak boleh memadankan sumber statik, jika tidak, ralat 404 akan berlaku mempunyai keserasian yang lemah. Ia menggunakan kaedah
- dan
pushState()
baharu dalam HTML5 Objek sejarah dan memerlukan sokongan penyemak imbas tertentu .replaceState()
Apakah perbezaan antara $route dan $router?
$router ialah objek contoh VueRouter, mewakili satu-satunya objek penghala untuk keseluruhan aplikasi. Mengandungi kaedah lompat penghalaan, fungsi cangkuk, dsb. $route ialah objek penghalaan semasa, yang mewakili peraturan penghalaan komponen ini Setiap laluan akan mempunyai objek laluan, iaitu objek tempatan.
Apakah perbezaan antara beberapa cara menghantar parameter vue-router?
Penerangan | Cara untuk menentukan laluan lompatan | Jika tiada parameter dilalui | Bolehkah saya menghantar parameter tanpa nilai yang diperlukan?|||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
parameter params | Path/params parameter |
Anda mesti menggunakan nama untuk menentukan laluan | params ialah sebahagian daripada laluan, jika ruang letak dikonfigurasikan, ia mestilah Jika laluan ini mempunyai parameter params, tetapi parameter ini tidak diluluskan semasa lompatan, lompatan akan gagal atau halaman tidak akan mempunyai kandungan. |
|
|||||||||||||||
parameter pertanyaan td> | Path? key1=val1 & key2=val2.... |
1 route2 Ya Gunakan laluan untuk menentukan laluan | pertanyaan ialah parameter yang disambungkan selepas url, tidak mengapa jika anda tidak memilikinya td> | pertanyaan tidak akan |
Masalah kehilangan parameter Vue-router
Apabila parameter params diluluskan, parameter yang diterima oleh pemegang tempat tetapan diluluskan dan bar alamat tidak akan dipaparkan dan Muat semula akan hilang.
Penyelesaian: Anda boleh mendapatkan parameter melalui this.$route.params
dan menyimpannya secara setempat
Berapa banyak fungsi cangkuk yang terdapat pada vue-router? Apakah sebenarnya dan apakah proses pelaksanaannya?
vue-router
Pengawal navigasi yang disediakan terutamanya digunakan untuk menjaga navigasi dengan melompat atau membatalkan.
- Pengawal laluan global: Terdapat berbilang panggilan berdasarkan susunan penciptaan.
-
router.beforeEach()
Pengawal hadapan global, dicetuskan setiap kali anda menavigasi . -
router.afterEach()
Pengawal laluan pos global, selepas setiap lompatan laluan selesai. tidak akan menerima fungsi seterusnya , dan lompatan telah selesai dan telah memasuki komponen -
router.beforResolve()
Pengawal parsing global, sebelum lompatan penghalaan, semua pengawal dalam komponen Dan Komponen penghalaan tak segerak dicetuskan selepas ia dihuraikan, ia juga akan dicetuskan pada setiap navigasi. Selepas penghuraian selesai, navigasi ditentukan dan bersedia untuk melompat.
-
- Pengawal laluan dalam komponen
-
beforeRouteEnter()
dipanggil sebelum laluan memasuki komponen ini selepasbeforeEach
danbeforeEnter
.
Anda belum memasukkan komponen lagi dan tika komponen belum dibuat lagi. Oleh itu, tika komponen tidak boleh diperolehi Pada masa ini, ini tidak ditentukan dan dicetuskan sebelumbeforeCreate
kitaran hayat. -
beforeRouteUpdate()
ini sudah tersedia, jadi tidak perlu menghantar panggilan balik ke seterusnya. Untuk laluan /foo/:id dengan parameter dinamik, apabila melompat antara /foo/1 dan /foo/2, kerana komponen Foo bersatu akan diberikan, tika komponen ini akan digunakan semula dalam kes ini. -
beforeRouteLeave()
Dipanggil apabila meninggalkan komponen, ini sudah tersedia, jadi tidak perlu menghantar panggilan balik ke seterusnya.
-
- Pengawal laluan eksklusif
-
beforeEnter()
Anda perlu menentukan pengawal beforeEnter pada konfigurasi penghalaan Pengadang ini hanya digunakan apabila memasuki laluan. Pencetus , dilaksanakan serta-merta selepas sebelumSetiap, dan tidak akan dicetuskan apabila param, pertanyaan atau cincangan berubah.
-
Susunan panggilan sebelum memasuki komponenbeforeEach()=>beforeEnter()=>beforeRouteEnter()=>beforeResolve()
Proses ini tidak boleh digunakan kerana contoh komponen belum dibuat lagi, jadi anda perlu menggunakan fungsi seterusnya
Proses analisis navigasi lengkap
1. Navigasi dicetuskan.
2. Panggil pengawal beforeRouteLeave
dalam komponen yang dinyahaktifkan.
3. Panggil pengawal beforeEach
global.
4. Panggil pengawal beforeRouteUpdate
dalam komponen yang digunakan semula.
5. Panggil beforeEnter
dalam konfigurasi penghalaan.
6. Menghuraikan komponen penghalaan tak segerak.
7. Panggil beforeRouteEnter
dalam komponen yang diaktifkan.
8. Panggil pengawal beforeResolve
global.
9. Navigasi disahkan.
10. Panggil cangkuk afterEach global.
11. Cetuskan kemas kini DOM.
12. Panggil beforeRouteEnter
pengawal dan hantar ke fungsi panggil balik seterusnya.
kekal-hidup
boleh melaksanakan caching komponen, yang tidak akan berlaku apabila komponen dihidupkan. Teg keep-alive
terutamanya mempunyai tiga atribut: termasuk, kecualikan dan maks dicache secara bersyarat. contoh dicipta. keep-alive
- Dua kitaran hayat
- , digunakan untuk mengetahui sama ada komponen semasa aktif.
include
exclude
keep-alive
Pengurusan cache prinsip kekalkan + proses lekap/nyahlekap khas -
max
Proses nyahlekap/lekap khas:
LRU ( Paling Kurang Digunakan Baru-baru ini) ialah algoritma penyingkiran activated/deactivated
Proses nyahpasang/lekap khas
Memandangkan komponen tidak boleh dinyahpasang dengan benar, Jadi keep-alive mengalihkan komponen dari bekas asal ke bekas palsu yang lain untuk mencapai penyahpasangan palsu. Apabila dipasang, ia dipindahkan dari bekas tersembunyi ke bekas asal. Sepadan dengan dan Tambah keptAlive pada objek vnode Atribut komponen dalaman, jika komponen telah dicache, tambahkan tanda untuk menunjukkan bahawa pemapar tidak akan dipasang semula dan boleh diaktifkan secara langsung. Strategi cache: Paling Kurang Digunakan Baru-baru Ini Gunakan cache objek Peta ke komponen cache nilai untuk menjana cache kunci berdasarkan ID komponen dan teg, dan simpannya dalam objek cache Cari sama ada tika komponen telah dicache. Jika ia wujud, dapatkan terus nilai cache dan kemas kini kedudukan kunci dalam kekunci (mengemas kini kedudukan kunci ialah kunci untuk melaksanakan strategi penggantian LRU). Jika ia tidak wujud, simpan tika komponen dalam objek peta dan simpan nilai kunci Kemudian semak sama ada bilangan kejadian cache melebihi nilai tetapan maksimum nilai tetapan maks, padamkan yang terbaharu mengikut dasar penggantian LRU Contoh yang paling lama tidak digunakan (iaitu, kunci dengan indeks 0). (Mempelajari perkongsian video: tutorial pengenalan vuejs, Video pengaturcaraan asas)activated/deactivated
kitaran hayat komponen
keepAlive akan menandakan komponen dalaman (yang perlu dicache)
vnode.type
, dan nilainya ialah vnode对象
, kerana terdapat rujukan kepada contoh komponen (vnode.component
) dalam objek vnod komponen
cache
Yang pertama digunakan untuk menyimpan komponen cache maya keys
Yang terakhir digunakan untuk menyimpan koleksi kunci komponen cache
Atas ialah kandungan terperinci [Kompilasi dan perkongsian] Beberapa soalan temu bual berkaitan vue-router (dengan analisis jawapan). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Anda boleh menambah fungsi ke butang VUE dengan mengikat butang dalam templat HTML ke kaedah. Tentukan kaedah dan tulis logik fungsi dalam contoh Vue.

Menggunakan bootstrap dalam vue.js dibahagikan kepada lima langkah: Pasang bootstrap. Import bootstrap di main.js. Gunakan komponen bootstrap secara langsung dalam templat. Pilihan: Gaya tersuai. Pilihan: Gunakan pemalam.

Terdapat tiga cara untuk merujuk kepada fail JS dalam vue.js: Secara langsung tentukan jalan menggunakan & lt; skrip & gt; tag ;; import dinamik menggunakan cangkuk kitaran hayat yang dipasang (); dan mengimport melalui Perpustakaan Pengurusan Negeri VUEX.

Pilihan Watch di Vue.js membolehkan pemaju mendengar perubahan dalam data tertentu. Apabila data berubah, tontonkan mencetuskan fungsi panggil balik untuk melakukan paparan kemas kini atau tugas lain. Pilihan konfigurasinya termasuk segera, yang menentukan sama ada untuk melaksanakan panggilan balik dengan serta -merta, dan mendalam, yang menentukan sama ada untuk mendengarkan secara rekursif terhadap objek atau tatasusunan.

Vue.js mempunyai empat kaedah untuk kembali ke halaman sebelumnya: $ router.go (-1) $ router.back () menggunakan & lt; router-link to = & quot;/& quot; Komponen Window.History.Back (), dan pemilihan kaedah bergantung pada tempat kejadian.

Pembangunan pelbagai halaman Vue adalah cara untuk membina aplikasi menggunakan rangka kerja VUE.JS, di mana permohonan dibahagikan kepada halaman berasingan: Penyelenggaraan kod: Memisahkan aplikasi ke dalam beberapa halaman boleh menjadikan kod lebih mudah untuk dikendalikan dan diselenggarakan. Modularity: Setiap halaman boleh digunakan sebagai modul yang berasingan untuk penggunaan semula dan penggantian mudah. Routing mudah: Navigasi antara halaman boleh diuruskan melalui konfigurasi penghalaan mudah. Pengoptimuman SEO: Setiap halaman mempunyai URL sendiri, yang membantu SEO.

Anda boleh menanyakan versi VUE dengan menggunakan Vue Devtools untuk melihat tab VUE dalam konsol penyemak imbas. Gunakan NPM untuk menjalankan arahan "NPM LIST -G VUE". Cari item VUE dalam objek "Dependencies" fail Package.json. Untuk projek Vue CLI, jalankan perintah "Vue -version". Semak maklumat versi di & lt; skrip & gt; Tag dalam fail HTML yang merujuk kepada fail VUE.

Pemintasan fungsi dalam VUE adalah teknik yang digunakan untuk mengehadkan bilangan kali fungsi dipanggil dalam tempoh masa yang ditentukan dan mencegah masalah prestasi. Kaedah pelaksanaan adalah: mengimport perpustakaan lodash: import {debounce} dari 'lodash'; Gunakan fungsi debounce untuk membuat fungsi memintas: const debouncedfunction = debounce (() = & gt; { / logical /}, 500); Panggil fungsi Intercept, dan fungsi kawalan dipanggil paling banyak sekali dalam 500 milisaat.
