vue-router的导航守卫实际和组件的生命周期都是同一类型的钩子函数,在一个特定时间内会触发。
1、全局导航钩子:一般用来判断权限,以及页面丢失时需要执行的操作;
beforeEach()每次路由进入之前执行的函数。
afterEach()每次路由进入之后执行的函数。
beforeResolve()2.5新增
const router = new VueRouter({
mode: "history",
base: process.env.BASE_URL,
routes,
});
//全局前置守卫
router.beforeEach((to, from, next) => {
});
// 全局解析守卫
router.beforeResolve((to, from, next) => {
});
// 全局后置钩子
router.afterEach((to, from) => {
});
这三个都是全局钩子,无论是哪个路由对象被激活,这些钩子都会被触发,只是触发的时机不同。
2、 单个路由(实例钩子):某个指定路由跳转时需要执行的逻辑。
beforeEnter()
beforeLeave()
{
path: "/",
name: "Home",
component: Home,
// 路由独享守卫
beforeEnter: (to, from, next) => {
},
}