Heim >Web-Frontend >View.js >Wie erfolgt der Routenabgleich im Vue Router?

Wie erfolgt der Routenabgleich im Vue Router?

王林
王林Original
2023-07-22 14:49:061683Durchsuche

Vue Router ist der offizielle Routing-Manager von Vue.js. Es kann uns helfen, in Einzelseitenanwendungen zwischen Seiten zu wechseln und zu springen, wodurch Webanwendungen eine bessere Benutzererfahrung bieten. Eine der Kernfunktionen in Vue Router ist der Routenabgleich. In diesem Artikel wird erläutert, wie der Routenabgleich in Vue Router durchgeführt wird.

In Vue Router wird der Routenabgleich über die Routing-Tabelle (Routentabelle) abgeschlossen. Die Routing-Tabelle wird vom Entwickler definiert und jedes Routing-Tabellenelement enthält den Pfad, die entsprechende Komponente und die zugehörige Konfiguration. Beim Erstellen einer Vue-Router-Instanz können wir die Routing-Tabelle definieren, indem wir ein Routing-Konfigurationsobjekt übergeben.

import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from './components/Home.vue'
import About from './components/About.vue'
import NotFound from './components/NotFound.vue'

Vue.use(VueRouter)

const routes = [
  { path: '/', component: Home },
  { path: '/about', component: About },
  { path: '*', component: NotFound },
]

const router = new VueRouter({
  routes
})

export default router

Drei Routing-Tabelleneinträge sind im obigen Code definiert. { path: '/' gibt den Stammpfad an, und die entsprechende Komponente ist Home; { path: '/about' } gibt an Pfad ist /about, die entsprechende Komponente ist About; { path: '*' stellt andere nicht übereinstimmende Pfade dar, die entsprechende Komponente ist Nicht gefunden. { path: '/' } 表示根路径,对应的组件为 Home{ path: '/about' } 表示路径为 /about,对应的组件为 About{ path: '*' } 表示其他未匹配到的路径,对应的组件为 NotFound

在运行时,当用户访问某个路径时,Vue Router 会根据当前的路径进行匹配,找到对应的路由表项。Vue Router 提供了两种匹配模式:基于 Hash(Hash Mode)和基于 History(History Mode)。

基于 Hash 的匹配模式通过监听 location.hash 的变化来实现路由匹配。例如,当用户访问 /about 路径时,location.hash 的值会变为 #/about,Vue Router 会根据这个 hash 值来匹配到对应的路由表项,并加载相应的组件。

基于 History 的匹配模式使用 HTML5 的 History API,通过监听 location.pathname 的变化来实现路由匹配。例如,当用户访问 /about 路径时,location.pathname 的值会变为 /about,Vue Router 会根据这个路径名来匹配到对应的路由表项,并加载相应的组件。

Vue Router 内部实现了一个路由匹配的算法。它会将路由路径按照 / 进行分割,然后依次进行匹配。对于每个路径段(path segment),Vue Router 会依次判断是否匹配当前路由表项的路径段。

路由匹配支持动态参数,我们可以在路由表项的路径中使用动态参数。例如,{ path: '/user/:id' } 中的 :id 就是一个动态参数。在实际的匹配过程中,当路径中的 id

Wenn ein Benutzer zur Laufzeit auf einen bestimmten Pfad zugreift, gleicht Vue Router den aktuellen Pfad ab und findet den entsprechenden Routing-Tabelleneintrag. Vue Router bietet zwei Matching-Modi: Hash-basiert (Hash-Modus) und historienbasiert (History-Modus).

Der Hash-basierte Matching-Modus implementiert den Routenabgleich durch Überwachung von Änderungen in location.hash. Wenn ein Benutzer beispielsweise auf den Pfad /about zugreift, ändert sich der Wert von location.hash in #/about und Vue Router auch Verwenden Sie diesen Hash-Wert, um mit dem entsprechenden Routing-Tabelleneintrag übereinzustimmen und die entsprechende Komponente zu laden.

Der auf dem Verlauf basierende Abgleichsmodus verwendet die Verlaufs-API von HTML5, um den Routenabgleich zu implementieren, indem Änderungen in location.pathname überwacht werden. Wenn ein Benutzer beispielsweise auf den Pfad /about zugreift, ändert sich der Wert von location.pathname in /about und Vue Router verwendet Dieser Pfadname entspricht dem entsprechenden Routing-Tabelleneintrag und lädt die entsprechende Komponente.

Vue Router implementiert intern einen Routenanpassungsalgorithmus. Der Routing-Pfad wird nach / aufgeteilt und dann der Reihe nach abgeglichen. Für jedes Pfadsegment ermittelt Vue Router, ob es mit dem Pfadsegment des aktuellen Routing-Tabelleneintrags übereinstimmt. 🎜🎜Routenabgleich unterstützt dynamische Parameter. Wir können dynamische Parameter im Pfad von Routing-Tabelleneinträgen verwenden. Beispielsweise ist :id in { path: '/user/:id' ein dynamischer Parameter. Wenn sich während des eigentlichen Abgleichvorgangs der id-Teil des Pfads ändert, führt Vue Router einen erneuten Abgleich durch und übergibt den Wert des dynamischen Parameters an die Komponente. 🎜🎜Zusätzlich zum Pfadabgleich unterstützt Vue Router auch andere Abgleichsbedingungen, wie z. B. Umleitung (Redirect) und Alias ​​(Alias). Durch die Konfiguration dieser Übereinstimmungsbedingungen können wir das Verhalten des Routings flexibler steuern. 🎜🎜Zusammenfassend lässt sich sagen, dass der Routenabgleich in Vue Router über Routing-Tabellen erfolgt. Die Routing-Tabelle wird vom Entwickler definiert und jeder Routing-Tabelleneintrag enthält den Pfad und die entsprechenden Komponenten sowie deren zugehörige Konfigurationen. Zur Laufzeit gleicht Vue Router den aktuellen Pfad ab, findet den entsprechenden Routing-Tabelleneintrag und lädt die entsprechende Komponente. Der Routenabgleich unterstützt dynamische Parameter und das Verhalten der Route kann durch die Konfiguration anderer Übereinstimmungsbedingungen gesteuert werden. 🎜🎜Ich hoffe, dass dieser Artikel den Lesern helfen kann, den Routenanpassungsprozess in Vue Router zu verstehen und ihn flexibel in tatsächlichen Projekten verwenden zu können. 🎜

Das obige ist der detaillierte Inhalt vonWie erfolgt der Routenabgleich im Vue Router?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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