5-用导航守卫控制页面的访问权限
官方文档:https://router.vuejs.org/zh/guide/advanced/navigation-guards.html#%E5%85%A8%E5%B1%80%E5%89%8D%E7%BD%AE%E5%AE%88%E5%8D%AB
具体做法就是在 src/router/index.js
中:
全局前置守卫
在我们的项目中,除了登录页面,其它所有页面都需要具有登录状态才能访问。也就是说我们要给这些需要登录才能访问的页面进行统一控制。
const router = new VueRouter({ ... }) // 路由导航守卫:说白了所有页面的导航都会经过这里 // 守卫页面的导航的 // to:要去的路由信息 // from:来自哪里的路由信息 // next:放行方法 router.beforeEach((to, from, next) => { // 如果要访问的页面不是 /login,校验登录状态 // 如果没有登录,则跳转到登录页面 // 如果登录了,则允许通过 // 允许通过 // next() const user = JSON.parse(window.localStorage.getItem('user')) // 校验非登录页面的登录状态 if (to.path !== '/login') { if (user) { // 已登录,允许通过 next() } else { // 没有登录,跳转到登录页面 next('/login') } } else { // 登录页面,正常允许通过 next() } })