Heim Web-Frontend uni-app Route nach Uniapp-Aktualisierung verloren

Route nach Uniapp-Aktualisierung verloren

May 22, 2023 am 10:29 AM

Bei der Entwicklung von Anwendungen mit Uniapp stoßen wir häufig auf das Problem des Routenverlusts nach der Seitenaktualisierung. Dieses Problem tritt in der Entwicklung sehr häufig auf, ist jedoch nicht sehr schwer zu lösen. In diesem Artikel werden die Ursachen und Lösungen für dieses Problem untersucht.

1. Warum tritt das Problem des Routenverlusts auf?

In uniapp verwenden wir vue-router für die Routing-Verwaltung. Im Vue-Router wird die Routing-Verwaltung über die URL-Adresse des Browsers implementiert. Wenn wir die Seite aktualisieren, lädt der Browser die Seite neu und aktualisiert auch die URL-Adresse, was zum Problem des Routingverlusts führt.

Um dieses Problem besser zu verstehen, können wir uns zunächst den Routing-Modus von Vue-Router ansehen. vue-router bietet zwei Routing-Modi: Hash und Verlauf. Das Hash-Muster bezieht sich auf den Teil der URL-Adresse, der mit dem #-Symbol beginnt, zum Beispiel: http://example.com/#/home. Der Verlaufsmodus bezieht sich auf den Teil der URL-Adresse, der das #-Symbol nicht enthält, zum Beispiel: http://example.com/home.

Im Hash-Modus wird die Routing-Verwaltung über window.location.hash implementiert. Beim Aktualisieren der Seite lädt der Browser die Seite neu und window.location.hash ändert sich nicht, sodass die Routing-Informationen nicht verloren gehen. Im Verlaufsmodus wird die Routing-Verwaltung über window.location.pathname implementiert. Beim Aktualisieren der Seite lädt der Browser die Seite neu und window.location.pathname ändert sich, was zum Problem des Verlusts von Routing-Informationen führt.

2. Wie vermeide ich das Problem des Routenverlusts?

Um das Problem des Routenverlusts zu vermeiden, können wir die folgenden Maßnahmen ergreifen:

  1. Die Verwendung des Hash-Modus erzwingen

In Uniapp können wir die Verwendung des Hash-Modus erzwingen, indem wir das Modusattribut in main festlegen. js. Der Beispielcode lautet wie folgt:

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)
})
Nach dem Login kopieren
  1. Routing-Informationen vor der Seitenaktualisierung speichern

Wir können Routing-Informationen in localStorage im window.onbeforeunload-Ereignis speichern. Das Codebeispiel lautet wie folgt:

mounted() {
  // 监听onbeforeunload事件,保存路由信息
  window.onbeforeunload = () => {
    localStorage.setItem('lastRoute', this.$route.fullPath)
  }
}
Nach dem Login kopieren

Nachdem die Seite geladen wurde, können wir feststellen, ob wir zur vorherigen Routing-Seite springen müssen, indem wir feststellen, ob lastRoute in localStorage vorhanden ist. Das Codebeispiel lautet wie folgt:

mounted() {
  // 判断是否存在lastRoute,若存在则跳转到之前的路由页面
  const lastRoute = localStorage.getItem('lastRoute')
  if (lastRoute) {
    localStorage.removeItem('lastRoute')
    this.$router.replace(lastRoute)
  }
}
Nach dem Login kopieren
Nach dem Login kopieren
  1. Verwenden Sie die Hook-Funktion vor dem Routensprung.

Vor jedem Routensprung können wir die beforeEach-Hook-Funktion verwenden, um die aktuellen Routing-Informationen vor dem Sprung zu speichern, damit sie danach wiederhergestellt werden können Die Seite wird aktualisiert. Routing-Status. Das Codebeispiel lautet wie folgt:

router.beforeEach((to, from, next) => {
  localStorage.setItem('lastRoute', from.fullPath) // 保存当前路由信息
  next()
})
Nach dem Login kopieren

Nachdem die Seite geladen wurde, können wir feststellen, ob wir zur vorherigen Routing-Seite springen müssen, indem wir feststellen, ob lastRoute in localStorage vorhanden ist. Das Codebeispiel lautet wie folgt:

mounted() {
  // 判断是否存在lastRoute,若存在则跳转到之前的路由页面
  const lastRoute = localStorage.getItem('lastRoute')
  if (lastRoute) {
    localStorage.removeItem('lastRoute')
    this.$router.replace(lastRoute)
  }
}
Nach dem Login kopieren
Nach dem Login kopieren

Zusammenfassung:

Verlorenes Routing ist ein häufiges Problem bei der Uniapp-Entwicklung, aber wir können dieses Problem mit den oben genannten drei Methoden leicht vermeiden. Bei der Entwicklung von Anwendungen mit Uniapp sollten wir den Routing-Modus von Vue-Router vollständig verstehen und geeignete Maßnahmen ergreifen, um das Problem des Routenverlusts zu lösen.

Das obige ist der detaillierte Inhalt vonRoute nach Uniapp-Aktualisierung verloren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was sind die verschiedenen Arten von Tests, die Sie in einer UNIAPP -Anwendung durchführen können? Was sind die verschiedenen Arten von Tests, die Sie in einer UNIAPP -Anwendung durchführen können? Mar 27, 2025 pm 04:59 PM

In dem Artikel werden verschiedene Testtypen für UNIAPP-Anwendungen erörtert, einschließlich Einheiten, Integration, Funktions-, UI/UX-, Leistung, plattformübergreifender und Sicherheitstests. Es deckt auch die Gewährleistung der plattformübergreifenden Kompatibilität ab und empfiehlt Tools wie JES

Wie können Sie die Größe Ihres UNIAPP -Anwendungspakets reduzieren? Wie können Sie die Größe Ihres UNIAPP -Anwendungspakets reduzieren? Mar 27, 2025 pm 04:45 PM

In dem Artikel werden Strategien zur Reduzierung der UNIAPP -Paketgröße erörtert, wobei der Schwerpunkt auf Codeoptimierung, Ressourcenmanagement und Techniken wie Codeaufteilung und faulen Laden liegt.

Welche Debugging -Tools stehen für die UNIAPP -Entwicklung zur Verfügung? Welche Debugging -Tools stehen für die UNIAPP -Entwicklung zur Verfügung? Mar 27, 2025 pm 05:05 PM

In dem Artikel werden Debugging -Tools und Best Practices für die UniApp -Entwicklung erörtert und sich auf Tools wie Hbuilderx, Wechat -Entwickler -Tools und Chrome Devtools konzentriert.

Wie können Sie Lazy Loading verwenden, um die Leistung zu verbessern? Wie können Sie Lazy Loading verwenden, um die Leistung zu verbessern? Mar 27, 2025 pm 04:47 PM

Lazy Loading definiert nicht kritische Ressourcen, um die Leistung der Standorte zu verbessern, die Ladezeiten und die Datennutzung zu reduzieren. Zu den wichtigsten Praktiken gehören die Priorisierung kritischer Inhalte und die Verwendung effizienter APIs.

Wie können Sie Bilder für die Webleistung in UNIAPP optimieren? Wie können Sie Bilder für die Webleistung in UNIAPP optimieren? Mar 27, 2025 pm 04:50 PM

In dem Artikel wird die Optimierung von Bildern in UNIAPP für eine bessere Webleistung durch Komprimierung, reaktionsschnelles Design, faules Laden, Caching und Verwenden von WebP -Format erläutert.

Wie können Sie die Ladegeschwindigkeit Ihrer UNIAPP -Anwendung optimieren? Wie können Sie die Ladegeschwindigkeit Ihrer UNIAPP -Anwendung optimieren? Mar 27, 2025 pm 04:43 PM

In dem Artikel werden Strategien zur Optimierung der UNIIPP -Ladegeschwindigkeit erörtert, wobei der Schwerpunkt auf der Minimierung der Bündelgröße, der Optimierung von Medien, dem Caching, der Codeaufteilung, der Verwendung von CDNs und der Reduzierung von Netzwerkanforderungen.

Wie können Sie Netzwerkanfragen in UNIAPP optimieren? Wie können Sie Netzwerkanfragen in UNIAPP optimieren? Mar 27, 2025 pm 04:52 PM

In dem Artikel werden Strategien zur Optimierung von Netzwerkanfragen in UNIAPP erörtert, konzentriert sich auf die Reduzierung der Latenz, die Implementierung von Caching und die Verwendung von Überwachungstools zur Verbesserung der Anwendungsleistung.

Was sind einige häufige Leistungs-Anti-Muster in UNIAPP? Was sind einige häufige Leistungs-Anti-Muster in UNIAPP? Mar 27, 2025 pm 04:58 PM

In dem Artikel werden gemeinsame Leistungs-Anti-Patterns in der UniApp-Entwicklung wie übermäßige globale Datennutzung und ineffiziente Datenbindung erörtert und Strategien zur Identifizierung und Minderung dieser Probleme für eine bessere App-Leistung bietet.

See all articles