Maison > interface Web > Voir.js > le corps du texte

Parlons du routage dans Vue3 et analysons brièvement les méthodes de configuration du routage

青灯夜游
Libérer: 2021-12-21 10:35:02
avant
3764 Les gens l'ont consulté

Cet article vous guidera à travers le routage dans Vue3 et parlera de la configuration de base du routage, de la configuration du routage dynamique, du mode de routage, de la redirection de routage, etc. J'espère qu'il vous sera utile.

Parlons du routage dans Vue3 et analysons brièvement les méthodes de configuration du routage

【Recommandation associée : "tutoriel vue.js"】

Configuration de base du routage

1 Installez le plug-in

npm install vue-router@next --save
Copier après la connexion

2 Créez un fichier routers.ts

3. .ts Introduire les composants et configurer les chemins.

import { createRouter,createWebHashHistory } from 'vue-router';
// 引入组件
import Home from './components/Home.vue';
import News from './components/News.vue';
import User from './components/User.vue';

const router = createRouter({
  history: createWebHashHistory(),
  routes: [
    {path: '/', component: Home},
    {path: '/news', component: News},
    {path: '/user', component: User},
  ]
})

export default router;
Copier après la connexion

4. Montez le fichier de routage sur vue dans main.ts.

import { createApp } from 'vue'
import App from './App.vue'
import routers from './routers';

// createApp(App).mount('#app')

const app = createApp(App);
app.use(routers);
app.mount('#app');
Copier après la connexion

5. Une fois que le composant qui utilise le routage monte router-link via le composant router-view ou router-link

<template>
  <img alt="Vue logo" src="./assets/logo.png">
  <ul>
    <li>
      <router-link to="/">首页</router-link>
    </li>
    <li>
      <router-link to="/news">新闻</router-link>
    </li>
    <li>
      <router-link to="/user">用户</router-link>
    </li>
  </ul>

  <router-view></router-view>
</template>
Copier après la connexion

, il vous suffit de saisir l'itinéraire spécifié sur le chemin de la page correspondant au composant pour terminer le saut. . Router -link implémente le routage sous la forme d'un saut d'étiquette.

Configuration du routage dynamique

Configurez le routage dans routes.ts comme suit et configurez le routage dynamique via /:aid.

//配置路由
const router = createRouter({

    history: createWebHashHistory(),
    routes: [
        { path: &#39;/&#39;, component: Home , alias: &#39;/home&#39; },
        { path: &#39;/news&#39;, component: News },
        { path: &#39;/user&#39;, component: User },
        { path: &#39;/newscontent/:aid&#39;, component: NewsContent },
    ], 
})
Copier après la connexion

Lorsque vous passez par le lien du routeur, une chaîne de modèle et deux points + to sont requis.

<ul>
    <li v-for="(item, index) in list" :key="index">
        <router-link  :to="`/newscontent/${index}`"> {{item}}</router-link>
    </li>
</ul>
Copier après la connexion

Obtenez la valeur transmise par la route dynamique via this.$route.params.

mounted(){
    // this.$route.params 获取动态路由的传值
    console.log(this.$route.params)
}
Copier après la connexion

Si nous voulons implémenter un transfert de valeur similaire à GET, nous pouvons utiliser la méthode suivante

1 Configurer la route comme une route normale.

const router = createRouter({

    history: createWebHashHistory(),
    routes: [
        { path: &#39;/&#39;, component: Home , alias: &#39;/home&#39; },
        { path: &#39;/news&#39;, component: News },
        { path: &#39;/user&#39;, component: User },
        { path: &#39;/newscontent&#39;, component: NewsContent },
    ], 
})
Copier après la connexion

2. Le lien du routeur saute sous forme de points d'interrogation.

<router-link  :to="`/newscontent?aid=${index}`"> {{item}}</router-link>
Copier après la connexion

3. Obtenez la valeur obtenue grâce à this.$route.query.

console.log(this.$route.query);
Copier après la connexion

Navigation programmatique d'itinéraire (itinéraire de saut JS)

Spécifiez-le simplement via this.$router.push.

  this.$router.push({
    path: &#39;/home&#39;
  })
Copier après la connexion

Si vous souhaitez implémenter le transfert de valeur get, vous pouvez utiliser la méthode suivante.

this.$router.push({
    path: &#39;/home&#39;,
    query: {aid: 14}
  })
}
Copier après la connexion

Le routage dynamique doit utiliser la méthode suivante.

  this.$router.push({
    path: &#39;/home/123&#39;,
    // query: {aid: 14}
  })
Copier après la connexion

Mode de routage

Mode Hash

La caractéristique typique du mode Hash est que l'itinéraire de la page contient un signe dièse.

const router = createRouter({

    history: createWebHashHistory(),
    routes: [
        ...,
    ], 
})
Copier après la connexion

Mode historique HTML5

  • présente createWebHistory.

  • L'attribut history dans l'élément de configuration du routeur est défini sur createWebHistory().

import { createRouter, createWebHistory } from &#39;vue-router&#39;

//配置路由
const router = createRouter({
    history: createWebHistory(),
    routes: [
        ...
    ], 
})
Copier après la connexion

Remarque : Après avoir activé le mode Historique HTML5, vous devez configurer le pseudo-statique lors de la publication sur le serveur.

Méthode pour configurer le pseudo-statique :

https://router.vuejs.org/zh/guide/essentials/history-mode.html#%E5%90%8E%E7%AB%AF%E9%85% 8D %E7%BD%AE%E4%BE%8B%E5%AD%90

Itinéraire nommé

Situation générale

  • Configurer l'attribut nom lors de la définition de l'itinéraire

{ path: &#39;/news&#39;, component: News,name:"news" }
Copier après la connexion
  • Entrant object Jump

<router-link :to="{name: &#39;news&#39;}">新闻</router-link>
Copier après la connexion

Passer la valeur via GET

  • Configurer l'attribut name lors de la définition de la route

{ path: &#39;/newscontent&#39;, component: NewsContent, name: "content" },
Copier après la connexion
  • Passez dans l'objet incluant la requête

<li v-for="(item, index) in list" :key="index">
    <router-link  :to="{name: &#39;content&#39;,query: {aid: index}}"> {{item}}</router-link>
</li>
Copier après la connexion

Thr Méthode de routage plutôt dynamique

  • Définissez le routage dynamique et spécifiez l'attribut de nom

{ path: &#39;/userinfo/:id&#39;, name: "userinfo", component: UserInfo }
Copier après la connexion
  • Passez dans l'objet incluant les paramètres

<router-link :to="{name: &#39;userinfo&#39;,params: {id: 123}}">跳转到用户详情</router-link>
Copier après la connexion

Le routage programmatique

est très similaire à la méthode ci-dessus.

<button @click="this.$router.push({name: &#39;userinfo&#39;,params: {id: 666}})">点击跳转</button>
Copier après la connexion

Redirection d'itinéraire

{ path: &#39;&#39;, redirect: "/home" },   // 路由重定向
{ path: &#39;/home&#39;, component: Home },
Copier après la connexion

Alias ​​d'itinéraire

Dans l'exemple ci-dessous, accéder à l'itinéraire des personnes équivaut à accéder à l'itinéraire d'alias.

{ path: &#39;/user&#39;, component: User, alias: &#39;/people&#39; }
Copier après la connexion

alias peut également être un tableau.

{ path: &#39;/user&#39;, component: User, alias: [&#39;/people&#39;,&#39;/u&#39;]}
Copier après la connexion

forme de routage dynamique.

{ path: &#39;/userinfo/:id&#39;, name: "userinfo", component: UserInfo, alias: &#39;/u/:id&#39; }
Copier après la connexion

Routage imbriqué

Le scénario d'application du routage imbriqué se trouve généralement sur la barre de navigation.

  • Définissez le routage imbriqué

{
  path: &#39;/user&#39;, component: User,
  children: [
    { path: &#39;&#39;, redirect: "/user/userlist" },
    { path: &#39;userlist&#39;, component: UserList },
    { path: &#39;useradd&#39;, component: UserAdd }
  ]
}
Copier après la connexion
  • router-link et router-view coopèrent pour afficher le contenu

<div class="left">
  <ul>
    <li>
      <router-link to="/user/userlist">用户列表</router-link>
    </li>
    <li>
      <router-link to="/user/useradd">增加用户</router-link>
    </li>
  </ul>
</div>
<div class="right">
  <router-view></router-view>
</div>
Copier après la connexion

Pour plus de connaissances liées à la programmation, veuillez visiter : Introduction à la programmation ! !

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!

Étiquettes associées:
source:juejin.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal