实现思路
- 路由懒加载:在Vue Router中,使用动态导入语法
import()
实现路由组件的懒加载。这样在初始加载时,只有必要的路由组件会被加载,提高加载性能。
- 权限验证:利用Vue Router的导航守卫(
beforeEach
),在路由切换前检查用户角色,并根据角色决定是否允许访问目标路由。
关键代码示例
- 配置路由懒加载
import Vue from 'vue';
import Router from 'vue-router';
Vue.use(Router);
const router = new Router({
routes: [
{
path: '/home',
name: 'Home',
// 路由懒加载
component: () => import('@/components/Home.vue')
},
{
path: '/admin',
name: 'Admin',
// 路由懒加载
component: () => import('@/components/Admin.vue')
}
]
});
export default router;
- 在路由导航守卫中进行权限验证
router.beforeEach((to, from, next) => {
const userRole = localStorage.getItem('userRole'); // 假设从本地存储获取用户角色
const adminRoutes = ['/admin'];
if (adminRoutes.includes(to.path) && userRole!== 'admin') {
next('/home'); // 如果不是管理员角色,重定向到首页
} else {
next(); // 允许访问
}
});