vue 导航守卫
全局前置守卫
通常用来判断是否登录(main.js配置) to:进入到哪个路由去,from:从哪个路由离开
router.beforeEach((to, from, next) => { next() // 放行
next(false) // 取消执行
next('/')或 next({path:'/'}) // 重定向
})
路由守卫
在路由中配置,只作用于当前路由对象 用法跟全局守卫一样
{ path: '/foo', component: Foo, beforeEnter: (to, from, next) => {} }
组件路由守卫
在vue文件中配置
beforeRouteEnter(to, from, next) { // to 当前页面 from从哪个页面进来(上一个页面) // 在渲染该组件的对应路由被 confirm 前调用 // 不!能!获取组件实例 `this` // 因为当守卫执行前,组件实例还没被创建 // 可以在next回调中调用this }, beforeRouteUpdate(to, from, next) { // 在当前路由改变,但是该组件被复用时调用 // 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候, // 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。 // 可以访问组件实例 `this` }, beforeRouteLeave(to, from, next) { // to 要去哪个页面(下个页面) from当前页面 // 离开当前页面时调用 (比如浏览器后退) // 可以访问组件实例 `this` }
to 或 from 对象 (路由对象)
name: "badDebtDetails"
path: "/sell/personageManagement/badDebtDetails"
query: {}
params: {}