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: {}

 

posted @ 2021-05-18 16:10  cielw  阅读(62)  评论(0)    收藏  举报