0Pricing
Vue Academy · Lektion

Navigationswächter

Schützen Sie Routen und führen Sie mit Guards Logik bei der Navigation aus

Navigationswächter ist eine kostenlose Vue Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Vue Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Vue Academy-Kurs umfasst insgesamt 3 Lektionen.

Was sind Navigation Guards?

Navigation Guards ermöglichen es, Code vor, während oder nach einem Routenwechsel auszuführen.

  • Navigation blockieren oder umleiten
  • Authentifizierung prüfen
  • Vor dem Verlassen einer Seite eine Bestätigung einholen

Arten von Guards

Es gibt drei Ebenen von Guards:

  • Globale Guards werden bei jeder Navigation ausgeführt
  • Routenbezogene Guards werden für eine bestimmte Route ausgeführt
  • In-Komponenten-Guards werden innerhalb einer Komponente ausgeführt

Der globale Guard beforeEach

router.beforeEach wird vor jeder Navigation ausgeführt. Die Funktion erhält die Zielroute und die aktuelle Route.

router.beforeEach((to, from) => {
  console.log("going to", to.path)
  // return true to allow,
  // or a route to redirect
})

Navigation erlauben oder umleiten

In Vue Router 4 geben Sie einen Wert zurück, um den Ablauf zu steuern.

  • Geben Sie true oder nichts zurück, um die Navigation zu erlauben
  • Geben Sie false zurück, um sie abzubrechen
  • Geben Sie eine Route-Location zurück, um umzuleiten
router.beforeEach((to) => {
  if (to.meta.requiresAuth && !isLoggedIn()) {
    return { name: "login" }
  }
  return true
})

Meta-Felder von Routen

Fügen Sie Routen benutzerdefinierte meta-Daten wie requiresAuth hinzu und lesen Sie sie in Guards aus.

const routes = [
  {
    path: "/dashboard",
    component: Dashboard,
    meta: { requiresAuth: true }
  }
]

Ein Authentifizierungs-Guard

Ein häufig verwendetes Muster: Schützen Sie Routen, indem Sie die Authentifizierung in einem globalen Guard prüfen.

router.beforeEach((to) => {
  const authed = localStorage.getItem("token")
  if (to.meta.requiresAuth && !authed) {
    return { name: "login", query: { redirect: to.fullPath } }
  }
})

Routenbezogenes beforeEnter

beforeEnter schützt eine einzelne Route direkt in ihrer Definition.

const routes = [
  {
    path: "/admin",
    component: Admin,
    beforeEnter: (to, from) => {
      return isAdmin() ? true : { name: "home" }
    }
  }
]

In-Komponenten-Guards

Komponenten können eigene Guards definieren. onBeforeRouteLeave wird beim Navigieren von einer Route weg ausgeführt.

import { onBeforeRouteLeave } from "vue-router"

onBeforeRouteLeave((to, from) => {
  if (hasUnsavedChanges.value) {
    return window.confirm("Leave without saving?")
  }
})

onBeforeRouteUpdate

onBeforeRouteUpdate wird ausgeführt, wenn sich die Route ändert, aber dieselbe Komponente wiederverwendet wird, etwa bei einer Parameteränderung.

import { onBeforeRouteUpdate } from "vue-router"

onBeforeRouteUpdate((to) => {
  loadUser(to.params.id)
})

Der next-Callback (klassischer Stil)

Älterer Code verwendet ein drittes Argument, next, um die Navigation zu steuern. Inzwischen wird die Rückgabe eines Werts bevorzugt.

// Classic style with next()
router.beforeEach((to, from, next) => {
  if (canAccess(to)) {
    next()         // proceed
  } else {
    next("/login") // redirect
  }
})

Rückgabewert oder next()

Zwei Stile mit demselben Ziel:

  • Einen Wert zurückgeben (modern und übersichtlicher): true, false oder eine Location
  • next() aufrufen (klassisch): fortfahren oder umleiten

Vermischen Sie die beiden Stile nicht im selben Guard. Für neuen Code wird der Rückgabestil empfohlen.

Kurzer Test

Testen Sie Ihr Verständnis von Navigation Guards.

Zusammenfassung: Navigation Guards

Sie haben gelernt, die Navigation zu steuern:

  • Der globale Guard beforeEach wird für jede Route ausgeführt
  • Geben Sie true zurück, um die Navigation zu erlauben, false zum Abbrechen oder eine Location zum Umleiten
  • meta-Felder wie requiresAuth steuern Authentifizierungsprüfungen
  • beforeEnter schützt eine einzelne Route
  • In-Komponenten-Guards wie onBeforeRouteLeave behandeln das Verlassen einer Route

Sie haben den Grundlagenkurs zu Vue.js abgeschlossen!

Häufig gestellte Fragen

Ist die Lektion „Navigationswächter“ kostenlos?

Ja — der vollständige Text von „Navigationswächter“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Vue Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Vue Academy-Kurs umfasst insgesamt 3 Lektionen.

Was lerne ich in „Navigationswächter“?

Schützen Sie Routen und führen Sie mit Guards Logik bei der Navigation aus Du übst Vue Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Vue Academy zu starten?

Keine Vorkenntnisse erforderlich. Vue Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 3.

Wie lange dauert die Lektion „Navigationswächter“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Vue Academy-Lektion Code schreiben und ausführen?

Ja. Jede Vue Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Vue Router einrichten
  2. Verschachtelte und dynamische Routen
  3. Navigationswächter
← Zurück zu Vue Academy