Maison interface Web Voir.js Comment implémenter le routage dynamique et les gardes de routage dans Vue

Comment implémenter le routage dynamique et les gardes de routage dans Vue

Oct 15, 2023 am 10:36 AM
routage dynamique gardes de route vue路由 (vue router)

Comment implémenter le routage dynamique et les gardes de routage dans Vue

Comment implémenter le routage dynamique et les gardes de routage dans Vue

Dans Vue, le routage est un concept très important, lié aux sauts de page, au contrôle des autorisations, etc. Cet article présentera comment implémenter le routage dynamique et les gardes de routage, et donnera des exemples de code spécifiques.

1. Routage dynamique

Le routage dynamique fait référence à la génération de différentes configurations de routage en fonction de différentes conditions ou paramètres. Le routage dynamique de Vue est implémenté à l'aide de Vue Router.

  1. Installer Vue Router

Tout d'abord, nous devons installer Vue Router. Exécutez la commande suivante dans le répertoire racine du projet :

npm install vue-router
Copier après la connexion
  1. Configurer le fichier de routage

Créez un répertoire de routeur dans le répertoire src du projet, et créez un fichier index.js dans le répertoire de configuration du routage.

// router/index.js
import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

export default new Router({
  routes: []
})
Copier après la connexion
  1. Générer dynamiquement des itinéraires

Nous pouvons obtenir une configuration de routage dynamique via l'interface backend ou d'autres méthodes, puis l'ajouter à la configuration de routage.

// router/index.js
import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

const router = new Router({
  routes: []
})

// 获取动态路由配置
// 假设通过接口获取到的路由数据为response.data
const dynamicRoutes = response.data

// 添加动态路由
router.addRoutes(dynamicRoutes)

export default router
Copier après la connexion

Avec le code ci-dessus, nous pouvons générer dynamiquement des routes basées sur les données renvoyées par l'interface d'arrière-plan et les ajouter à la configuration de Vue Router.

2. Route guard

Route guard peut être utilisé pour contrôler l'accès de l'utilisateur à un certain itinéraire. Par exemple, l'utilisateur doit se connecter avant de pouvoir accéder à une certaine page. Vue Router fournit la fonction de garde de route.

Tout d'abord, nous devons comprendre plusieurs concepts liés aux gardes de route :

  • Pré-garde globale : exécutée avant le changement de routage, elle peut être utilisée pour le contrôle global des autorisations et d'autres opérations.
  • Garde exclusive d'itinéraire : elle n'est valable que pour un certain itinéraire et peut être utilisée pour le contrôle des autorisations locales et d'autres opérations.
  • Gardes au sein d'un composant : valables uniquement pour un certain composant et peuvent être utilisés pour effectuer des opérations telles que le contrôle des autorisations au sein du composant.
  1. Global front guard

Nous pouvons utiliser des gardes globales dans le fichier de configuration de routage (router/index.js). Par exemple, pour implémenter le contrôle des autorisations de connexion :

// router/index.js
import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

const router = new Router({
  routes: []
})

// 添加全局前置守卫
router.beforeEach((to, from, next) => {
  // 判断用户是否登录
  const isLogin = localStorage.getItem('isLogin')

  // 如果用户未登录,并且访问的页面需要登录权限,则跳转至登录页
  if (!isLogin && to.meta.requireAuth) {
    next('/login')
  } else {
    next()
  }
})

export default router
Copier après la connexion

Dans le code ci-dessus, nous ajoutons des gardes frontales globales via la méthode router.beforeEach(). Dans cette garde, nous déterminons si l'utilisateur est connecté et effectuons les sauts correspondants en fonction de différentes situations. router.beforeEach()方法来添加全局前置守卫。在该守卫中,我们判断用户是否登录,并根据不同情况进行相应的跳转。

  1. 路由独享守卫

除了全局前置守卫外,我们还可以为某个路由单独配置守卫。例如,实现管理员权限控制:

// router/index.js
import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

const router = new Router({
  routes: [
    {
      path: '/admin',
      component: AdminComponent,
      meta: { requireAdmin: true } // 设置路由元信息
    }
  ]
})

export default router
Copier après la connexion
// router/index.js
import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

const router = new Router({
  routes: [
    {
      path: '/admin',
      component: AdminComponent,
      meta: { requireAdmin: true } // 设置路由元信息
    }
  ]
})

// 添加全局前置守卫
router.beforeEach((to, from, next) => {
  // 判断用户是否为管理员
  const isAdmin = localStorage.getItem('isAdmin')

  // 如果用户不是管理员,并且访问的页面需要管理员权限,则跳转至首页
  if (!isAdmin && to.meta.requireAdmin) {
    next('/')
  } else {
    next()
  }
})

export default router
Copier après la connexion

在以上代码中,我们给/admin路由配置了元信息meta.requireAdmin

    Gardettes exclusives pour les itinéraires
En plus des gardes avant globales, nous pouvons également configurer des gardes séparées pour un certain itinéraire. Par exemple, pour implémenter le contrôle des autorisations de l'administrateur :

// router/index.js
import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

const router = new Router({
  routes: []
})

export default router
Copier après la connexion
// App.vue
<template>
  <div>
    <!-- 页面内容 -->
  </div>
</template>

<script>
export default {
  // 组件内的守卫:每次路由切换后滚动到顶部
  beforeRouteUpdate(to, from, next) {
    window.scrollTo(0, 0)
    next()
  }
}
</script>
Copier après la connexion
Dans le code ci-dessus, nous configurons les méta-informations meta.requireAdmin pour la route /admin afin de spécifier que la page nécessite autorisations d'administrateur. Ensuite, utilisez le Front Guard global pour déterminer si l'utilisateur est un administrateur et effectuez le saut correspondant.

Protections à l'intérieur des composants

🎜🎜En plus des protections avant globales et des protections exclusives à l'itinéraire, Vue Router fournit également des protections à l'intérieur des composants. Par exemple, pour contrôler le comportement de défilement de la page : 🎜rrreeerrreee🎜Dans le code ci-dessus, nous utilisons la méthode beforeRouteUpdate() dans le composant App.vue pour faire défiler la page vers le haut après chaque changement d'itinéraire. 🎜🎜Résumé : cet article présente comment implémenter le routage dynamique et les gardes de routage dans Vue, et donne des exemples de code spécifiques. Le routage dynamique peut générer différents itinéraires en obtenant une configuration de routage dynamique. Les gardes d'itinéraire peuvent être utilisés pour contrôler l'accès des utilisateurs à un certain itinéraire, y compris les gardes avant globaux, les gardes exclusifs d'itinéraire et les gardes au sein des composants. La mise en œuvre de ces fonctions est très importante pour créer des applications frontales complexes. 🎜

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelle est la méthode de conversion des chaînes Vue.js en objets? Quelle est la méthode de conversion des chaînes Vue.js en objets? Apr 07, 2025 pm 09:18 PM

L'utilisation de la chaîne JSON.Parse () à l'objet est la plus sûre et la plus efficace: assurez-vous que les chaînes sont conformes aux spécifications JSON et évitez les erreurs courantes. Utilisez Try ... Catch pour gérer les exceptions pour améliorer la robustesse du code. Évitez d'utiliser la méthode EVAL (), qui présente des risques de sécurité. Pour les énormes cordes JSON, l'analyse de fouet ou l'analyse asynchrone peut être envisagée pour optimiser les performances.

Vue.js vs react: Considérations spécifiques au projet Vue.js vs react: Considérations spécifiques au projet Apr 09, 2025 am 12:01 AM

Vue.js convient aux projets de petite et moyenne taille et aux itérations rapides, tandis que React convient aux applications grandes et complexes. 1) Vue.js est facile à utiliser et convient aux situations où l'équipe est insuffisante ou l'échelle du projet est petite. 2) React a un écosystème plus riche et convient aux projets avec des performances élevées et des besoins fonctionnels complexes.

Vue.js est-il difficile à apprendre? Vue.js est-il difficile à apprendre? Apr 04, 2025 am 12:02 AM

Vue.js n'est pas difficile à apprendre, en particulier pour les développeurs avec une fondation JavaScript. 1) Sa conception progressive et son système réactif simplifient le processus de développement. 2) Le développement basé sur les composants rend la gestion du code plus efficace. 3) Les exemples d'utilisation montrent une utilisation de base et avancée. 4) Les erreurs courantes peuvent être déboguées via Vuedevtools. 5) L'optimisation des performances et les meilleures pratiques, telles que l'utilisation des attributs V-IF / V et clés, peuvent améliorer l'efficacité de l'application.

Vue est-elle utilisée pour le frontend ou le backend? Vue est-elle utilisée pour le frontend ou le backend? Apr 03, 2025 am 12:07 AM

Vue.js est principalement utilisé pour le développement frontal. 1) Il s'agit d'un cadre JavaScript léger et flexible axé sur la construction d'interfaces utilisateur et d'applications à une seule page. 2) Le cœur de Vue.js est son système de données réactif, et la vue est automatiquement mise à jour lorsque les données changent. 3) Il prend en charge le développement des composants et l'interface utilisateur peut être divisée en composants indépendants et réutilisables.

Comment utiliser Bootstrap en Vue Comment utiliser Bootstrap en Vue Apr 07, 2025 pm 11:33 PM

L'utilisation de bootstrap dans vue.js est divisée en cinq étapes: installer bootstrap. Importer un bootstrap dans main.js. Utilisez le composant bootstrap directement dans le modèle. Facultatif: style personnalisé. Facultatif: utilisez des plug-ins.

Comment ajouter des fonctions aux boutons pour Vue Comment ajouter des fonctions aux boutons pour Vue Apr 08, 2025 am 08:51 AM

Vous pouvez ajouter une fonction au bouton VUE en liant le bouton dans le modèle HTML à une méthode. Définissez la logique de la fonction de méthode et d'écriture dans l'instance Vue.

Comment référencer le fichier JS avec Vue.js Comment référencer le fichier JS avec Vue.js Apr 07, 2025 pm 11:27 PM

Il existe trois façons de se référer aux fichiers JS dans Vue.js: spécifiez directement le chemin à l'aide du & lt; script & gt; étiqueter;; importation dynamique à l'aide du crochet de cycle de vie monté (); et l'importation via la bibliothèque de gestion de l'État Vuex.

Comment utiliser Watch in Vue Comment utiliser Watch in Vue Apr 07, 2025 pm 11:36 PM

L'option Watch dans Vue.js permet aux développeurs d'écouter des modifications de données spécifiques. Lorsque les données changent, regardez déclenche une fonction de rappel pour effectuer des vues de mise à jour ou d'autres tâches. Ses options de configuration incluent immédiatement, qui spécifie s'il faut exécuter un rappel immédiatement, et profond, ce qui spécifie s'il faut écouter récursivement les modifications des objets ou des tableaux.

See all articles