深入使用
导航守卫
在实际开发中,我们经常需要在路由跳转前或跳转后执行一些逻辑,比如权限验证。Vue Router 提供了丰富的导航守卫机制。
核心参数说明
to:即将进入的目标路由对象。from:当前导航正要离开的路由对象。next:控制路由跳转的函数。next():放行,继续执行路由。next(false):中断当前导航,如果浏览器 URL 已改变,则回退到from路由。next('/path'):跳转到指定路径。next(error):将控制权交给router.onError()。
组件内守卫 在组件内部定义的守卫,生命周期更贴近组件本身。
export default {
beforeRouteEnter(to, from, next) {
// 在路由进入前调用,此时组件实例尚未创建
next();
},
beforeRouteUpdate(to, from, next) {
// 在当前路由改变,但组件被复用时调用
next();
},
beforeRouteLeave(to, from, next) {
// 在路由离开前调用,常用于确认用户是否要离开页面
next();
}
};
路由独享守卫 直接在路由配置中定义,适用于特定路由的权限控制。
const routes = [
{
path: '/admin',
component: Admin,
beforeEnter: (to, from, next) => {
if (isAdmin()) {
next();
} else {
next('/login');
}
}
}
];


