Rumah hujung hadapan web uni-app Laluan hilang selepas muat semula uniapp

Laluan hilang selepas muat semula uniapp

May 22, 2023 am 10:29 AM

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:

  1. 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)
})
Salin selepas log masuk
  1. 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)
  }
}
Salin selepas log masuk

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)
  }
}
Salin selepas log masuk
Salin selepas log masuk
  1. 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()
})
Salin selepas log masuk

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)
  }
}
Salin selepas log masuk
Salin selepas log masuk

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!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah jenis ujian yang boleh anda lakukan dalam aplikasi UNIAPP? Apakah jenis ujian yang boleh anda lakukan dalam aplikasi UNIAPP? Mar 27, 2025 pm 04:59 PM

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

Bagaimanakah anda dapat mengurangkan saiz pakej aplikasi UNIAPP anda? Bagaimanakah anda dapat mengurangkan saiz pakej aplikasi UNIAPP anda? Mar 27, 2025 pm 04:45 PM

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

Apakah alat penyahpepijatan yang tersedia untuk pembangunan Uniapp? Apakah alat penyahpepijatan yang tersedia untuk pembangunan Uniapp? Mar 27, 2025 pm 05:05 PM

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

Bagaimanakah anda boleh menggunakan pemuatan malas untuk meningkatkan prestasi? Bagaimanakah anda boleh menggunakan pemuatan malas untuk meningkatkan prestasi? Mar 27, 2025 pm 04:47 PM

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.

Bagaimanakah anda boleh mengoptimumkan imej untuk prestasi web di Uniapp? Bagaimanakah anda boleh mengoptimumkan imej untuk prestasi web di Uniapp? Mar 27, 2025 pm 04:50 PM

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.

Bagaimanakah anda boleh mengoptimumkan kelajuan pemuatan aplikasi UNIAPP anda? Bagaimanakah anda boleh mengoptimumkan kelajuan pemuatan aplikasi UNIAPP anda? Mar 27, 2025 pm 04:43 PM

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.

Bagaimanakah anda dapat mengoptimumkan permintaan rangkaian di UNIPP? Bagaimanakah anda dapat mengoptimumkan permintaan rangkaian di UNIPP? Mar 27, 2025 pm 04:52 PM

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.

Apakah beberapa corak prestasi biasa di UNIAPP? Apakah beberapa corak prestasi biasa di UNIAPP? Mar 27, 2025 pm 04:58 PM

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.

See all articles