vue-router判断页面需要登录router.beforeEach

配置vue-router,控制页面登录后可见,未登录跳转到登录login页面

官网文档地址
https://router.vuejs.org/zh/api/#router-beforeeach

在这里插入图片描述

router/index.js
_import为自定义js,就不放出来,直接import组件即可

import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)

export default new Router({
  mode: 'history',
  routes: [
    {
      path: '/',
      name: 'public',
      component: _import('public/index')
    },
    {
      path: '/home',
      name: 'home',
      meta: {
        requireLogin: true
      },
      component: _import('home/index')
    },
    {
      path: '/login',
      name: 'login',
      component: _import('login/index')
    }
  ]
})

main.js

import {getToken} from './utils/auth'

// 判断路由登录状态
router.beforeEach((to, from, next) => {
  if (to.meta.requireLogin) {
    //  页面需要登录后访问
    if (getToken()) {	//getToken() 方法在auth.js中
      next() // 表示已经登录
    } else {
      next({
        name: 'login'
      })
    }
  } else {
    next()
  }
})

auth.js

import Cookies from 'js-cookie'
const TokenKey = 'express-demo-token'

export function getToken () {
  return Cookies.get(TokenKey)
}

export function setToken (token) {
  return Cookies.set(TokenKey, token)
}

export function removeToken () {
  return Cookies.remove(TokenKey)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值