Maison  >  Article  >  interface Web  >  Comment la correspondance d'itinéraire est-elle effectuée dans Vue Router ?

Comment la correspondance d'itinéraire est-elle effectuée dans Vue Router ?

王林
王林original
2023-07-22 14:49:061600parcourir

Vue Router est le gestionnaire de routage officiel de Vue.js. Cela peut nous aider à basculer et à passer d'une page à l'autre dans des applications à page unique, offrant ainsi aux applications Web une meilleure expérience utilisateur. L'une des fonctions principales de Vue Router est la correspondance d'itinéraire. Cet article présentera comment la correspondance d'itinéraire est effectuée dans Vue Router.

Dans Vue Router, la correspondance d'itinéraire est effectuée via la table de routage (Route Table). La table de routage est définie par le développeur et chaque élément de la table de routage contient le chemin, le composant correspondant et sa configuration associée. Lors de la création d'une instance Vue Router, nous pouvons définir la table de routage en passant un objet de configuration de routage.

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

Trois entrées de table de routage sont définies dans le code ci-dessus. { path : '/' } indique le chemin racine et le composant correspondant est Home ; { path : '/about' } indique le le chemin est /about, le composant correspondant est About ; { path : '*' } représente d'autres chemins sans correspondance, le composant correspondant est Introuvable. { 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

Au moment de l'exécution, lorsqu'un utilisateur accède à un certain chemin, Vue Router fera correspondre le chemin actuel et trouvera l'entrée de la table de routage correspondante. Vue Router propose deux modes de correspondance : basé sur le hachage (mode de hachage) et basé sur l'historique (mode historique).

Le mode de correspondance basé sur le hachage implémente la correspondance d'itinéraire en surveillant les modifications dans location.hash. Par exemple, lorsqu'un utilisateur accède au chemin /about, la valeur de location.hash deviendra #/about et Vue Router le fera. utilisez cette valeur de hachage pour faire correspondre l'entrée de la table de routage correspondante et charger le composant correspondant.

Le mode de correspondance basé sur l'historique utilise l'API d'historique de HTML5 pour implémenter la correspondance d'itinéraire en surveillant les modifications dans location.pathname. Par exemple, lorsqu'un utilisateur accède au chemin /about, la valeur de location.pathname deviendra /about et Vue Router utilisera ce nom de chemin pour faire correspondre l'entrée de la table de routage correspondante et charger le composant correspondant.

Vue Router implémente en interne un algorithme de correspondance d'itinéraire. Il divisera le chemin de routage en fonction de /, puis les fera correspondre dans l'ordre. Pour chaque segment de chemin, Vue Router déterminera s'il correspond au segment de chemin de l'entrée actuelle de la table de routage. 🎜🎜La correspondance d'itinéraire prend en charge les paramètres dynamiques. Nous pouvons utiliser des paramètres dynamiques dans le chemin des entrées de la table de routage. Par exemple, :id dans { path: '/user/:id' } est un paramètre dynamique. Pendant le processus de correspondance réel, lorsque la partie id du chemin change, Vue Router effectuera une nouvelle correspondance et transmettra la valeur du paramètre dynamique au composant. 🎜🎜En plus de la correspondance de chemin, Vue Router prend également en charge d'autres conditions de correspondance, telles que la redirection (Redirect) et l'alias (Alias). En configurant ces conditions de correspondance, nous pouvons contrôler de manière plus flexible le comportement du routage. 🎜🎜Pour résumer, la correspondance d'itinéraire dans Vue Router se fait via des tables de routage. La table de routage est définie par le développeur et chaque entrée de la table de routage contient le chemin d'accès et les composants correspondants ainsi que leurs configurations associées. Au moment de l'exécution, Vue Router fera correspondre le chemin actuel, trouvera l'entrée de la table de routage correspondante et chargera le composant correspondant. La correspondance d'itinéraire prend en charge les paramètres dynamiques et le comportement de l'itinéraire peut être contrôlé en configurant d'autres conditions de correspondance. 🎜🎜J'espère que cet article pourra aider les lecteurs à comprendre le processus de correspondance d'itinéraire dans Vue Router et à pouvoir l'utiliser de manière flexible dans des projets réels. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn