Heim Web-Frontend View.js Vue-Router: Wie verwende ich Routenwächter zum Schutz von Routen?

Vue-Router: Wie verwende ich Routenwächter zum Schutz von Routen?

Dec 17, 2023 pm 06:28 PM
vue-router 路由守卫 Route schützen

Vue-Router: 如何使用路由守卫保护路由?

Vue-Router: Wie verwende ich Routenwächter zum Schutz von Routen?

In der Entwicklung von Vue.js ist Vue-Router ein wichtiges Tool für das Front-End-Routing-Management. Vue-Router ermöglicht uns nicht nur die einfache Implementierung von Seitensprüngen und -übergängen, sondern bietet auch einen Route-Guard-Mechanismus, der es uns ermöglicht, einige benutzerdefinierte Vorgänge vor und nach Routensprüngen durchzuführen, z. B. Authentifizierung und Umleitungswartezeit.

Um die Verwendung von Routenwächtern besser zu verstehen, werden wir sie in drei Teilen vorstellen: globale Wächter, routenexklusive Wächter und komponenteninterne Wächter.

  1. Global Guard

Global Guard ist ein Guard, der vor und nach jedem Routensprung in der gesamten Anwendung ausgeführt wird. Wir können ihn über die von Vue-Router bereitgestellte Methode registrieren. Es gibt drei globale Schutzmethoden, nämlich beforeEach, beforeResolve und afterEach. beforeEachbeforeResolveafterEach

在main.js文件中,我们可以通过如下代码进行注册:

import router from './router'

router.beforeEach((to, from, next) => {
  // 这里是你的自定义逻辑
  if (to.meta.requiresAuth && !isAuthenticated()) {
    next('/login') // 重定向到登录页
  } else {
    next()
  }
})

router.beforeResolve((to, from, next) => {
  // 这里是你的自定义逻辑
  next()
})

router.afterEach(() => {
  // 这里是你的自定义逻辑
})
Nach dem Login kopieren

beforeEach方法中,我们可以根据实际情况进行鉴权判断,如果用户未登录且目标路由需要登录权限,我们可以通过next('/login')将用户重定向到登录页。

beforeResolve方法在路由解析完毕后被调用,可以在该方法中执行一些异步操作。

afterEach方法在路由跳转完成后被调用,可以用于执行一些全局的清理操作。

  1. 路由独享守卫

路由独享守卫是针对某个具体路由进行的配置,只有在该路由中才会被起作用。我们可以在路由配置中使用beforeEnter属性来进行注册。

{
  path: '/admin',
  component: Admin,
  beforeEnter: (to, from, next) => {
    // 这里是你的自定义逻辑
    if (!isAdmin()) {
      next('/access-denied') // 重定向到访问拒绝页
    } else {
      next()
    }
  }
}
Nach dem Login kopieren

在路由独享守卫中,我们可以根据实际需求进行逻辑判断,例如检查用户是否有管理员权限,如果没有,则重定向到访问拒绝页。

  1. 组件内守卫

除了全局守卫和路由独享守卫外,Vue-Router还提供了组件内的守卫,用于在组件内部进行路由跳转的操作。组件内的守卫包括beforeRouteEnterbeforeRouteUpdatebeforeRouteLeave

In der Datei main.js können wir uns über den folgenden Code registrieren:

export default {
  beforeRouteEnter (to, from, next) {
    // 这里是你的自定义逻辑
    if (!isAuthenticated()) {
      next('/login') // 重定向到登录页
    } else {
      next()
    }
  },
  beforeRouteUpdate (to, from, next) {
    // 这里是你的自定义逻辑
    next()
  },
  beforeRouteLeave (to, from, next) {
    // 这里是你的自定义逻辑
    next()
  }
}
Nach dem Login kopieren
In der Methode beforeEach können wir Authentifizierungsurteile basierend auf der tatsächlichen Situation treffen, wenn der Benutzer nicht angemeldet ist und die Zielroute erfordert Anmeldeberechtigungen. Wir können den Benutzer über next('/login') zur Anmeldeseite umleiten.

Die Methode beforeResolve wird aufgerufen, nachdem die Route aufgelöst wurde, und in dieser Methode können einige asynchrone Vorgänge ausgeführt werden.

Die afterEach-Methode wird nach Abschluss des Routensprungs aufgerufen und kann zur Durchführung einiger globaler Bereinigungsvorgänge verwendet werden. 🎜
    🎜Route Exclusive Guard🎜🎜🎜Route Exclusive Guard ist für eine bestimmte Route konfiguriert und wird nur auf dieser Route wirksam. Zur Registrierung können wir das Attribut beforeEnter in der Routing-Konfiguration verwenden. 🎜rrreee🎜Im Routing-Exklusivschutz können wir logische Beurteilungen auf der Grundlage tatsächlicher Anforderungen treffen, z. B. prüfen, ob der Benutzer über Administratorrechte verfügt, und wenn nicht, auf die Seite zur Zugriffsverweigerung umleiten. 🎜
      🎜Komponenteninterne Guards🎜🎜🎜Zusätzlich zu globalen Guards und Routen-exklusiven Guards bietet Vue-Router auch komponenteninterne Guards für Routing-Sprungoperationen innerhalb der Komponente. Zu den Guards innerhalb der Komponente gehören beforeRouteEnter, beforeRouteUpdate und beforeRouteLeave. 🎜rrreee🎜Im Guard innerhalb der Komponente können wir einige benutzerdefinierte Vorgänge gemäß den tatsächlichen Anforderungen ausführen, z. B. prüfen, ob der Benutzer angemeldet ist, und wenn nicht, eine Umleitung zur Anmeldeseite durchführen. 🎜🎜Zusammenfassung: 🎜🎜Durch die oben genannten drei Methoden können wir Routenwächter verwenden, um Routen zu schützen und einige benutzerdefinierte Vorgänge wie Authentifizierung, Umleitung usw. zu implementieren. Je nach Bedarf können wir den passenden Schutztyp für die Konfiguration auswählen, um eine flexiblere und wartbarere Routing-Verwaltung zu erreichen. In der tatsächlichen Entwicklung können wir diese Schutzvorrichtungen entsprechend den spezifischen Anforderungen und Geschäftsszenarien sinnvoll einsetzen, um die Anwendungssicherheit und die Benutzererfahrung zu verbessern. 🎜

Das obige ist der detaillierte Inhalt vonVue-Router: Wie verwende ich Routenwächter zum Schutz von Routen?. 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

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

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)

In meiner Vue-Anwendung ist der Vue-Router-Fehler „NavigationDuplicated: Vermeidung redundanter Navigation zum aktuellen Standort' aufgetreten. Wie kann ich ihn beheben? In meiner Vue-Anwendung ist der Vue-Router-Fehler „NavigationDuplicated: Vermeidung redundanter Navigation zum aktuellen Standort' aufgetreten. Wie kann ich ihn beheben? Jun 24, 2023 pm 02:20 PM

Der Vue-Router-Fehler „NavigationDuplicated:Avoidedredundantnavigationtocurrentlocation“ ist in der Vue-Anwendung aufgetreten – wie kann er behoben werden? Vue.js wird als schnelles und flexibles JavaScript-Framework in der Front-End-Anwendungsentwicklung immer beliebter. VueRouter ist eine Codebibliothek von Vue.js, die für die Routing-Verwaltung verwendet wird. Allerdings manchmal

Ein Artikel, der das Vue-Routing im Detail erklärt: vue-router Ein Artikel, der das Vue-Routing im Detail erklärt: vue-router Sep 01, 2022 pm 07:43 PM

In diesem Artikel erhalten Sie eine detaillierte Erklärung des Vue-Routers im Vue-Familien-Bucket und erfahren mehr über die relevanten Routing-Kenntnisse. Ich hoffe, er wird Ihnen hilfreich sein!

Wie kann das Problem „Fehler: Redundante Navigation zum aktuellen Standort vermieden' bei Verwendung von Vue-Router in der Vue-Anwendung gelöst werden? Wie kann das Problem „Fehler: Redundante Navigation zum aktuellen Standort vermieden' bei Verwendung von Vue-Router in der Vue-Anwendung gelöst werden? Jun 24, 2023 pm 05:39 PM

Bei der Verwendung von vue-router in einer Vue-Anwendung erscheint manchmal die Fehlermeldung „Fehler: Vermeidung redundanter Navigation zum aktuellen Standort“. Diese Fehlermeldung bedeutet „Vermeidung redundanter Navigation zum aktuellen Standort“ und wird normalerweise durch wiederholtes Klicken auf denselben Link oder die Verwendung desselben Routingpfads verursacht. Wie kann man dieses Problem lösen? Verwenden Sie beim Definieren des Routers den genauen Modifikator

Wie kann das Problem „Fehler: Die asynchrone Komponente konnte nicht aufgelöst werden: xxx' gelöst werden, wenn vue-router in einer Vue-Anwendung verwendet wird? Wie kann das Problem „Fehler: Die asynchrone Komponente konnte nicht aufgelöst werden: xxx' gelöst werden, wenn vue-router in einer Vue-Anwendung verwendet wird? Jun 24, 2023 pm 06:28 PM

Die Verwendung von Vue-Router ist eine gängige Methode zur Implementierung der Routing-Steuerung in Vue-Anwendungen. Bei Verwendung von Vue-Router tritt jedoch manchmal der Fehler „Fehler: Failedtoresolveasynccomponent:xxx“ auf, der durch einen asynchronen Komponentenladefehler verursacht wird. In diesem Artikel werden wir dieses Problem untersuchen und Lösungen anbieten. Verstehen Sie das Prinzip des asynchronen Ladens von Komponenten. In Vue können Komponenten synchron oder asynchron erstellt werden.

Vue und Vue-Router: Wie teilt man Daten zwischen Komponenten? Vue und Vue-Router: Wie teilt man Daten zwischen Komponenten? Dec 17, 2023 am 09:17 AM

Vue und Vue-Router: Wie teilt man Daten zwischen Komponenten? Einführung: Vue ist ein beliebtes JavaScript-Framework zum Erstellen von Benutzeroberflächen. Vue-Router ist der offizielle Routing-Manager von Vue, der zur Implementierung von Single-Page-Anwendungen verwendet wird. In Vue-Anwendungen sind Komponenten die Grundeinheiten zum Erstellen von Benutzeroberflächen. In vielen Fällen müssen wir Daten zwischen verschiedenen Komponenten austauschen. In diesem Artikel werden einige Methoden vorgestellt, die Ihnen beim Datenaustausch in Vue und Vue-Router helfen

Vue-Router: Wie verwende ich Routing-Metainformationen zum Verwalten von Routen? Vue-Router: Wie verwende ich Routing-Metainformationen zum Verwalten von Routen? Dec 18, 2023 pm 01:21 PM

Vue-Router: Wie verwende ich Routing-Metainformationen zum Verwalten von Routen? Einführung: Vue-Router ist der offizielle Routing-Manager von Vue.js, der uns dabei helfen kann, schnell Single-Page-Anwendungen (SPA) zu erstellen. Zusätzlich zu den gängigen Routing-Funktionen unterstützt Vue-Router auch die Verwendung von Routing-Metainformationen zur Verwaltung und Steuerung des Routings. Routing-Metainformationen sind ein benutzerdefiniertes Attribut, das an eine Route angehängt werden kann und uns dabei helfen kann, eine spezielle Logik oder Berechtigungskontrolle zu implementieren. 1. Was sind Routing-Metainformationen? Die Routing-Metainformationen sind

Wie kann das Problem „Fehler: Ungültige Routenkomponente: xxx' gelöst werden, wenn vue-router in einer Vue-Anwendung verwendet wird? Wie kann das Problem „Fehler: Ungültige Routenkomponente: xxx' gelöst werden, wenn vue-router in einer Vue-Anwendung verwendet wird? Jun 25, 2023 am 11:52 AM

Vue ist ein beliebtes Front-End-Framework, mit dem Entwickler schnell effiziente, wiederverwendbare Webanwendungen erstellen können. Vue-router ist ein Plug-in im Vue-Framework, das Entwicklern hilft, das Routing und die Navigation von Anwendungen einfach zu verwalten. Bei der Verwendung von Vue-Router tritt jedoch manchmal ein häufiger Fehler auf: „Error:Invalidroutecomponent:xxx“. In diesem Artikel werden die Ursachen und Lösungen für diesen Fehler erläutert. Der Grund liegt in Vu

Wie kann das Problem „Uncaught TypeError: Eigenschaft ‚Push' von undefiniert kann nicht gelesen werden' gelöst werden, wenn vue-router in einer Vue-Anwendung verwendet wird? Wie kann das Problem „Uncaught TypeError: Eigenschaft ‚Push' von undefiniert kann nicht gelesen werden' gelöst werden, wenn vue-router in einer Vue-Anwendung verwendet wird? Aug 18, 2023 pm 09:24 PM

Kürzlich habe ich versucht, vue-router in einer Vue-Anwendung zu verwenden, bin jedoch auf ein Problem gestoßen: „UncaughtTypeError: Cannotreadproperty'push'ofundefined“. Was ist die Ursache dieses Problems und wie kann es gelöst werden? Lassen Sie uns zunächst den Vue-Router verstehen. vue-router ist das offizielle Routing-Management-Plug-in von Vue.js, das uns beim Erstellen von Single-Page-Anwendungen (SPA) helfen kann

See all articles