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" };
});- 1Die Prüfung ins Template jeder Komponente setzen
- 2
to.matchedprüfen, damit Meta von Elternrouten auch für ihre Kinder gilt - 3Nur
to.metalesen, das bereits die Meta aller Eltern enthält
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.