目录结构
router.js
import Vue from 'vue'
import Router from 'vue-router'
import Login from './components/Login.vue'
import Home from './components/Home.vue'
Vue.use(Router)
const router= new Router({
routes:[
{path:'/',redirect:'/login'},
{path:'/login',component:Login},
{path:'/home',component:Home}
]
})
//挂载路由导航守卫
router.beforeEach((to,from,next)=>{
if(to.path==='/login') return next();
//获取token
const tokenStr=window.sessionStorage.getItem('token')
if(!tokenStr) return next('/login')
next();
})
export default router
login.vue
<template>
<div class="login_container">
<div class="login_box">
<div class="avatar_box">
<img src="../assets/logo.png">
</div>
<!-- 表单区域-->
<el-form ref="loginFormRef" :model="loginForm" :rules="loginFormRules" label-width="0px" class="login_form">
<!-- 登录区域-->
<el-form-item prop="username">
<el-input v-model="loginForm.username" prefix-icon="iconfont icon-user">&l