vue.js点击判断是否已经登录

首先在定义路由的时候就需要多添加一个自定义字段requireAuth,用于判断该路由的访问是否需要登录。如果用户已经登录,则顺利进入路由, 
否则就进入登录页面。

{
      path: '/shops/users',
      name: 'Users',
      meta: {
          title: '用户中心',
          requireAuth: true,  // 添加该字段,表示进入这个路由是需要登录的
      },
      component: Users
}

定义完路由后,在main.js我们主要是利用vue-router提供的钩子函数beforeEach()对路由进行判断。

router.beforeEach((to, from, next) => {
    if (to.meta.requireAuth) {  // 判断该路由是否需要登录权限
        if (localStorage.getItem('BASEINFO')) {  // 通过vuex state获取当前的用户是否存在
            next();
        }
        else {
            next({
                path: '/shops/login',
                query: {redirect: to.fullPath}  // 将跳转的路由path作为参数,登录成功后跳转到该路由
            })
        }
    }
    else {
        next();
    }
})

https://router.vuejs.org/zh/guide/#javascript