zoukankan      html  css  js  c++  java
  • vue-路由导航(守卫)那些事

    在项目开发过程中,有些逻辑需要使用到路由守卫,例如未登录情况下强制跳转到登陆页面、路由重定向

    一、路由导航种类

    1、全局前置守卫   beforeEach
    2、全局后置守卫   afterEach
    3、路由独享守卫   beforeEnter  //用的较多
    4、组件进入守卫   beforeRouteEnter  //用的较多
    5、组件更新守卫   beforeRouteUpdate 
    6、组件离开守卫   beforeRouteLeave
    

    二、路由具体使用方法

    1、全局前置守卫beforeEach

    const router = new VueRouter({ ... })
    // to进入时的路由信息对象
    router.beforeEach((to, from, next) => {
      if(符合条件){
          //使用next()跳转到指定路由
      }else{
          //使用next()跳转到指定路由
      }
    })
    

    2、全局后置守卫afterEach

    与beforeEach相似

    router.afterEach((to, from) => {
      // ...
    })
    

    3、路由独享守卫beforeEnter

    const router = new VueRouter({
      routes: [
        {
          path: '/foo',
          component: Foo,
          beforeEnter: (to, from, next) => {
            if(符合条件){
                //使用next()跳转到指定路由
            }else{
                //使用next()跳转到指定路由
            }
          
          }
        }
      ]
    })
    

    4、组件内的守卫

    const Foo = {
      template: `...`,
      beforeRouteEnter (to, from, next) {
        // 此处组件实例还没被创建,无法使用this关键字,但可以通过to(路由信息对象)
      },
      beforeRouteUpdate (to, from, next) {
        // 在当前路由改变,但是该组件被复用时调用
        // 可以访问组件实例 `this`
      },
      beforeRouteLeave (to, from, next) {
        // 导航离开该组件的对应路由时调用
        // 可以访问组件实例 `this`
      }
    }
    
  • 相关阅读:
    windows 10 查看电池损耗情况
    pycharm 远程显示 matplotlib
    关联矩阵与邻接矩阵 2018-11-27
    Determinats(行列式) 2018-11-23
    Ablation study 2018-11-10
    ODBC,实现图片循环写入Oracle数据库
    c#与java之比较(转自Jack.Wang's home)
    java中移位操作
    如何自学java迅速成为java高手
    一点点学习思考
  • 原文地址:https://www.cnblogs.com/piaoyi1997/p/13498655.html
Copyright © 2011-2022 走看看