vue实现未登陆情况下,先跳转登陆页面,登陆完成后,继续访问登陆前的页面

在router路由的index页面:

1、路由配置信息:设置meta头信息

 { path: '/search', component: () => import('@/views/companySearch/search'), hidden: true ,meta:{type:'login'}},//type变量名可以随便设置

2、在main.js中添加路由导航:

router.beforeEach((to,from,next)=>{

  const type=to.meta.type;//type是根据meta中设置的变量

  if(type==='login'){

    if(getCookie('loginToken')){//使用了js-cookie中间件处理cookie值

      next()

    }else{

      next({

        path:'/login',

        query:{

          redirect:to.fullPath

        }

      })//保存要跳转的页面路由,作为参数,传到登陆页面

    }

  }else{

    next()

  }

})

3、在login.vue页面中设置:

登陆函数中:

let redirect=decodeURIComponent(this.$route.query.redirect||'/')

this.$router.push({ path: redirect});

 

 

Vue实现登录后的页面跳转有多种方式,以下是其中一种常见的方法: 1. 首,你需要在Vue项目中安装`vue-router`,可以通过以下命令进行安装: ```bash npm install vue-router ``` 2. 在你的Vue项目中创建一个路由文件(通常命名为`router.js`或者`index.js`),并配置路由信息。在路由配置中,你可以使用`beforeEach`导航守卫来检查用户是否已登录。如果用户已登录,则允许页面跳转,否则将用户重定向到登录页面。 ```javascript import Vue from 'vue'; import Router from 'vue-router'; import Home from './views/Home.vue'; import Login from './views/Login.vue'; Vue.use(Router); const router = new Router({ routes: [ { path: '/', name: 'home', component: Home, meta: { requiresAuth: true // 设置需要登录才能访问页面 }, }, { path: '/login', name: 'login', component: Login, }, ], }); router.beforeEach((to, from, next) => { const isLoggedIn = ... // 根据你的登录状态判断用户是否已登录 if (to.matched.some(record => record.meta.requiresAuth) && !isLoggedIn) { next('/login'); // 如果需要登录才能访问页面登录,则重定向到登录页 } else { next(); // 允许页面跳转 } }); export default router; ``` 3. 在主Vue实例中引路由配置,并将路由挂载到Vue实例中: ```javascript import Vue from 'vue'; import App from './App.vue'; import router from './router'; new Vue({ router, render: h => h(App), }).$mount('#app'); ``` 在上述代码中,`Home`组件是需要登录才能访问页面,`Login`组件是登录页面。通过设置路由的`meta`字段中的`requiresAuth`为`true`,我们标记了需要登录才能访问页面。在导航守卫中,我们检查用户的登录状态,如果未登录访问页面需要登录权限,则将用户重定向到登录页面。 当用户登录后,你可以使用Vue Router提供的`router.push()`方法来实现页面跳转,例如: ```javascript // 登录功后跳转到首页 this.$router.push('/'); ``` 这样,当用户登录后,页面会自动跳转到首页。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值