面试题答案
一键面试- 定义路由元信息:
在
router/index.js
文件中定义路由时,添加meta
字段来表示角色权限。例如:const routes = [ { path: '/home', name: 'Home', component: Home, meta: { roles: ['admin', 'user'] } }, { path: '/personal', name: 'Personal', component: Personal, meta: { roles: ['admin', 'user'] } }, { path: '/admin', name: 'Admin', component: Admin, meta: { roles: ['admin'] } } ];
- 在导航守卫中进行判断:
在
router/index.js
中设置全局前置守卫,根据用户角色判断是否有权限访问。假设通过store
来存储用户角色信息。import router from './router'; import store from './store'; router.beforeEach((to, from, next) => { const userRole = store.getters.getUserRole; if (to.meta.roles &&!to.meta.roles.includes(userRole)) { // 用户没有权限,重定向到首页 next('/home'); } else { next(); } });