如何写vue-router使其进入页面就是登录页面
时间: 2023-08-07 22:02:28 浏览: 58
要实现进入页面就是登录页面的功能,你可以在 Vue Router 中配置一个路由守卫(Navigation Guards),在路由跳转时判断用户是否已经登录,如果没有登录,则重定向到登录页面。
这里提供两种方法供你选择:
1. 在路由文件中设置路由守卫
```
import Vue from 'vue'
import Router from 'vue-router'
import Login from '@/views/Login.vue'
import Home from '@/views/Home.vue'
Vue.use(Router)
const router = new Router({
routes: [
{
path: '/',
redirect: '/login' // 重定向到登录页面
},
{
path: '/login',
name: 'Login',
component: Login
},
{
path: '/home',
name: 'Home',
component: Home,
meta: {
requiresAuth: true // 需要登录才能进入的页面
}
}
]
})
// 路由守卫
router.beforeEach((to, from, next) => {
const isLoggedIn = localStorage.getItem('isLoggedIn') // 判断用户是否已经登录
if (to.matched.some(record => record.meta.requiresAuth) && !isLoggedIn) {
next('/login') // 未登录则重定向到登录页面
} else {
next()
}
})
export default router
```
2. 在 main.js 中设置全局路由守卫
```
import Vue from 'vue'
import App from './App.vue'
import router from './router'
Vue.config.productionTip = false
// 全局路由守卫
router.beforeEach((to, from, next) => {
const isLoggedIn = localStorage.getItem('isLoggedIn') // 判断用户是否已经登录
if (to.path !== '/login' && !isLoggedIn) {
next('/login') // 未登录则重定向到登录页面
} else {
next()
}
})
new Vue({
router,
render: h => h(App)
}).$mount('#app')
```
以上两种方法都可以实现在进入页面时就跳转到登录页面的功能。你可以根据自己的需求,选择其中一种方法进行实现。