路由的钩子函数有六个
全局的路由钩子函数:beforeEach、afterEach
单个路由的钩子函数:beforeEnter
组件内路由钩子函数:beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave
全局路由钩子函数
- 全局前置守卫: beforeEach(to, from, next)
- router.beforeEach: 在每次每一个路由改变的时候都会执行一遍
- to:将要进入的路由对象
- from: 当前正要离开的路由对象
- next
-
next(),进入下一个路由,必须调用,不然不会跳转
-
next(false): 中断当前的导航。如果浏览器的 URL 改变了 (可能是用户手动或者浏览器后退按钮),那么 URL 地址会重置到from路由对应的地址。
-
next(’/’) 或者 next({ paht:’/’}):跳转到一个不同的地址。当前的导航会被中断,然后进行一个新的导航。可传递的参数可以是 router-link 标签中的 to 属性参数或 router.push 中的选项
-
应用场景:可进行一些页面跳转前处理,例如判断需要登录的页面进行拦截,做登录跳转, 还有管理员权限判断。
router / index.js
// 挂载全局路由导航守卫
router.beforeEach((to,