zoukankan      html  css  js  c++  java
  • vue路由跳转时判断用户是否登录功能

    通过判断该用户是否登录过,如果没有登录则跳转到login登录路由,如果登录则正常跳转。

      一丶首先在用户登录前后分别给出一个状态来标识此用户是否登录(建议用vuex);

          简单用vuex表示一下,不会可以自己去官网多看看;

    import Vue from 'vue'
    import Vuex from 'vuex'
    
    Vue.use(Vuex);
    
    var state = {
        isLogin:0,          //初始时候给一个  isLogin=0  表示用户未登录
    };
    
    const mutations = {
        changeLogin(state,data){
            state.isLogin = data;
        }
    
    };

    二丶在用户登录时改变登录状态;

      this.$store.commit('changeLogin','100')     //登录后改变登录状态 isLogin = 100 ;
    

    三丶重点来了;

      在你的路由入口加上导航钩子,具体什么意思看代码;

         一丶设置需要校验的路由

      { path: '/admin', 
    component: Admin,
    meta:{auth:true} // 设置当前路由需要校验 不需要校验的路由就不用写了;不要问为什么,自己去看官网
       }   

     二丶路由跳转并校验

    router.beforeEach((to,from,next) => {
        if(to.matched.some( m => m.meta.auth)){
            // 对路由进行验证
            if(store.state.isLogin=='100') { // 已经登陆
                next()     // 正常跳转到你设置好的页面
            }else{
                // 未登录则跳转到登陆界面,query:{ Rurl: to.fullPath}表示把当前路由信息传递过去方便登录后跳转回来;
           next({path:'/login',query:{ Rurl: to.fullPath} })
         }
        }
    else{
          next()
      }
    })
  • 相关阅读:
    1082 射击比赛 (20 分)
    1091 N-自守数 (15 分)
    1064 朋友数 (20 分)
    1031 查验身份证 (15 分)
    1028 人口普查 (20 分)
    1059 C语言竞赛 (20 分)
    1083 是否存在相等的差 (20 分)
    1077 互评成绩计算 (20 分)
    792. 高精度减法
    791. 高精度加法
  • 原文地址:https://www.cnblogs.com/szyblogs/p/7196611.html
Copyright © 2011-2022 走看看