路由守卫是 Vue.js 中用于拦截和修改页面导航的功能。Vue 中有三种类型的路由守卫:全局守卫、特定路由守卫和组件内守卫。它们可用于验证用户登录、授予或拒绝访问、提示保存更改、执行异步操作等。

Vue 中的路由守卫
什么是路由守卫?
路由守卫是 Vue.js 中的功能,允许开发人员在特定条件下拦截和修改页面导航。
有哪些类型的路由守卫?
立即学习“前端免费学习笔记(深入)”;
Vue 中有三种类型的路由守卫:
- 全局守卫:适用于所有路由。
- 特定路由守卫:仅适用于特定的路由或路由组。
- 组件内守卫:只适用于特定 Vue 组件的路由。
如何使用路由守卫?
可以通过以下方式使用路由守卫:
-
全局守卫:在
router.js文件中使用router.beforeEach()和router.afterEach()方法。 -
特定路由守卫:在路由配置对象中使用
beforeEnter和afterEach钩子。 -
组件内守卫:在 Vue 组件中使用
beforeRouteEnter、beforeRouteUpdate和beforeRouteLeave钩子。
路由守卫有什么用?
路由守卫可用于实现多种用途,包括:
- 验证用户是否已登录
- 根据用户权限授予或拒绝对特定页面的访问
- 在离开页面之前提示用户保存更改
- 在页面加载后执行异步操作
示例:
使用全局守卫强制登录:
router.beforeEach((to, from, next) => {
if (to.fullPath !== '/login' && !localStorage.getItem('token')) {
next('/login');
} else {
next();
}
});使用组件内守卫在离开页面之前提示保存更改:











