Laluan hilang selepas muat semula uniapp
Apabila membangunkan aplikasi menggunakan uniapp, kami sering menghadapi masalah kehilangan laluan selepas muat semula halaman. Masalah ini sangat biasa dalam pembangunan, tetapi ia tidak begitu sukar untuk diselesaikan. Artikel ini akan menyelidiki punca dan penyelesaian kepada masalah ini.
1. Mengapakah masalah kehilangan laluan berlaku?
Dalam uniapp, kami menggunakan vue-router untuk pengurusan penghalaan. Dalam vue-router, pengurusan penghalaan dilaksanakan melalui alamat URL penyemak imbas. Apabila kami memuat semula halaman, penyemak imbas akan memuat semula halaman dan juga memuat semula alamat URL, yang membawa kepada masalah kehilangan laluan.
Untuk lebih memahami masalah ini, kita boleh lihat mod penghalaan vue-router dahulu. vue-router menyediakan dua mod penghalaan: hash dan sejarah. Corak cincang merujuk kepada bahagian alamat URL yang bermula dengan simbol #, contohnya: http://example.com/#/home. Mod sejarah merujuk kepada bahagian alamat URL yang tidak mengandungi simbol #, contohnya: http://example.com/home.
Dalam mod cincang, pengurusan penghalaan dilaksanakan melalui window.location.hash. Apabila memuat semula halaman, penyemak imbas memuat semula halaman dan window.location.hash tidak berubah, jadi maklumat penghalaan tidak hilang. Dalam mod sejarah, pengurusan penghalaan dilaksanakan melalui window.location.pathname. Apabila memuat semula halaman, penyemak imbas akan memuat semula halaman dan window.location.pathname akan berubah, yang membawa kepada masalah kehilangan maklumat penghalaan.
2. Bagaimana untuk mengelakkan masalah kehilangan laluan?
Untuk mengelakkan masalah kehilangan laluan, kami boleh mengambil langkah berikut:
- Paksa penggunaan mod cincang
Dalam uniapp, kita boleh lulus dalam utama Tetapkan atribut mod dalam .js untuk memaksa penggunaan mod cincang. Kod sampel adalah seperti berikut:
import Vue from 'vue' import App from './App' import router from './router' Vue.config.productionTip = false new Vue({ el: '#app', router, mode: 'hash', // 强制使用hash模式 render: h => h(App) })
- Simpan maklumat penghalaan sebelum muat semula halaman
Kami boleh menyimpan maklumat penghalaan dalam localStorage dalam acara window.onbeforeunload. Contoh kod adalah seperti berikut:
mounted() { // 监听onbeforeunload事件,保存路由信息 window.onbeforeunload = () => { localStorage.setItem('lastRoute', this.$route.fullPath) } }
Selepas halaman dimuatkan, kita boleh menentukan sama ada kita perlu melompat ke halaman penghalaan sebelumnya dengan menentukan sama ada lastRoute wujud dalam localStorage. Contoh kod adalah seperti berikut:
mounted() { // 判断是否存在lastRoute,若存在则跳转到之前的路由页面 const lastRoute = localStorage.getItem('lastRoute') if (lastRoute) { localStorage.removeItem('lastRoute') this.$router.replace(lastRoute) } }
- Gunakan fungsi cangkuk sebelum lompat laluan
Sebelum setiap lompat laluan, kita boleh menggunakan fungsi cangkuk beforeEach sebelum lompatan. Simpan maklumat penghalaan semasa supaya status penghalaan boleh dipulihkan selepas halaman dimuat semula. Contoh kod adalah seperti berikut:
router.beforeEach((to, from, next) => { localStorage.setItem('lastRoute', from.fullPath) // 保存当前路由信息 next() })
Selepas halaman dimuatkan, kita boleh menentukan sama ada kita perlu melompat ke halaman penghalaan sebelumnya dengan menentukan sama ada lastRoute wujud dalam localStorage. Contoh kod adalah seperti berikut:
mounted() { // 判断是否存在lastRoute,若存在则跳转到之前的路由页面 const lastRoute = localStorage.getItem('lastRoute') if (lastRoute) { localStorage.removeItem('lastRoute') this.$router.replace(lastRoute) } }
Ringkasan:
Kehilangan laluan adalah masalah biasa dalam pembangunan uniapp, tetapi kita boleh mengelakkan masalah ini dengan mudah melalui tiga kaedah di atas. Apabila membangunkan aplikasi menggunakan uniapp, kita harus memahami sepenuhnya mod penghalaan vue-router dan mengambil langkah yang sesuai untuk menyelesaikan masalah kehilangan laluan.
Atas ialah kandungan terperinci Laluan hilang selepas muat semula uniapp. 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

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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

Artikel ini membincangkan pelbagai jenis ujian untuk aplikasi UNIAPP, termasuk unit, integrasi, fungsional, UI/UX, prestasi, silang platform, dan ujian keselamatan. Ia juga meliputi memastikan keserasian silang platform dan mengesyorkan alat seperti JES

Artikel ini membincangkan strategi untuk mengurangkan saiz pakej UNIAPP, memberi tumpuan kepada pengoptimuman kod, pengurusan sumber, dan teknik seperti pemisahan kod dan pemuatan malas.

Artikel ini membincangkan alat penyahpepijatan dan amalan terbaik untuk pembangunan UNIPP, yang memberi tumpuan kepada alat seperti HBuildex, WeChat Developer Tools, dan Chrome Devtools.

Lazy Loading Delers Non-kritikal Sumber untuk meningkatkan prestasi tapak, mengurangkan masa beban dan penggunaan data. Amalan utama termasuk mengutamakan kandungan kritikal dan menggunakan API yang cekap.

Artikel ini membincangkan mengoptimumkan imej dalam UNIPP untuk prestasi web yang lebih baik melalui mampatan, reka bentuk responsif, pemuatan malas, caching, dan menggunakan format WEBP.

Artikel ini membincangkan strategi untuk mengoptimumkan kelajuan pemuatan UNIPP, memberi tumpuan kepada meminimumkan saiz bundle, mengoptimumkan media, caching, pemisahan kod, menggunakan CDN, dan mengurangkan permintaan rangkaian.

Artikel ini membincangkan strategi untuk mengoptimumkan permintaan rangkaian di UNIPP, memberi tumpuan kepada mengurangkan latensi, melaksanakan caching, dan menggunakan alat pemantauan untuk meningkatkan prestasi aplikasi.

Artikel ini membincangkan prestasi anti-corak prestasi dalam pembangunan UNIPP, seperti penggunaan data global yang berlebihan dan pengikatan data yang tidak cekap, dan menawarkan strategi untuk mengenal pasti dan mengurangkan isu-isu ini untuk prestasi aplikasi yang lebih baik.
