首页 > 其他 > 详细

5-vue中的路由拦截

时间:2020-02-23 11:19:52      阅读:54      评论:0      收藏:0      [点我收藏+]

登录成功后

技术分享图片

 

 

 此时的状态管理中

import Vue from ‘vue‘
import Vuex from ‘vuex‘

Vue.use(Vuex)

export default new Vuex.Store({
    state: {
      user: {
         name:window.localStorage.getItem(‘user‘|| ‘[]‘)==null ? "未登录":JSON.parse(window.localStorage.getItem(‘user‘ || ‘[]‘)).name,
         username:window.localStorage.getItem(‘user‘|| ‘[]‘)==null ? "":JSON.parse(window.localStorage.getItem(‘user‘ || ‘[]‘)).username,
         userface:window.localStorage.getItem(‘user‘|| ‘[]‘)==null ? "":JSON.parse(window.localStorage.getItem(‘user‘ || ‘[]‘)).userface,
         roles:window.localStorage.getItem(‘user‘|| ‘[]‘)==null ? "":JSON.parse(window.localStorage.getItem(‘user‘ || ‘[]‘)).roles,
      }
    },
    mutations: {
      login (state,user) {
         state.user=user;
         window.localStorage.setItem(‘user‘,JSON.stringify(user));
      }
    }
  })

登录和首页

技术分享图片

 

 

 路由守卫

router.beforeEach((to, from, next) => {
  
  if(to.name==‘login‘){ //如果是登录页直接放行
    next();
    return;
  }

  var name=store.state.user.name; //如果不是登录页,判断用户是否登录

  if(name=="未登录"){ //如果未登录
    if(to.meta.requireAuth || to.name==null){ //判断请求的是那个页面
      next({path: ‘/‘, query: {redirect: to.path}}) //path:‘/‘是跳转到/路径,query后面的是重定向要去的路径
    }else{
      next();
    }
  }else{
    next();
  }
})

当在浏览器地址栏中输入\home时候如果没登陆,跳转到登录页面。

5-vue中的路由拦截

原文:https://www.cnblogs.com/gfbzs/p/12348786.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!