Vue · Senior · Frage 39 von 75

Wie setzt man rollenbasierten Zugriff mit Route-Meta um?

{ path: "/admin", component: Admin, meta: { roles: ["admin"] } }
router.beforeEach((to) => {
  const roles = to.matched.flatMap((r) => r.meta.roles ?? []);
  if (roles.length && !roles.some(auth.hasRole)) return { name: "forbidden" };
});
Antwort zeigen

Richtige Antwort: to.matched prüfen, damit Meta von Elternrouten auch für ihre Kinder gilt

Erklärung

to.meta ist ein flaches Zusammenführen der Meta von Eltern und Kind, Werte des Kindes überschreiben also die der Eltern; to.matched liefert jede Ebene einzeln. Typisiere Meta über Module Augmentation von RouteMeta.

Zum Weiterlesen

Fehler in der Frage

Vue · Senior · Frage 39

Teste dich selbst

Mach den Test Vue · Senior: Fragen und Antworten werden gemischt, und am Ende wartet eine Übersicht der Fehler.

Diesen Test machen