vue跳转页面 如果登录了直接跳转 没有登录登录完以后直接跳转,使用vuex管理登录状态

本文主要是介绍vue跳转页面 如果登录了直接跳转 没有登录登录完以后直接跳转,使用vuex管理登录状态,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在Vue.js中,如果你需要在用户登录后重定向到他们原本想要访问的页面,你可以使用Vue Router的beforeEach守卫来实现这个功能。以下是实现这一需求的步骤:

  1. 存储目标路由:在用户被重定向到登录页面之前,存储他们想要访问的路由。

  2. 登录成功后重定向:在用户登录成功后,从存储的目标路由中读取并重定向用户。

  3. 使用next函数:在Vue Router的全局守卫中使用next函数来实现重定向。

下面是具体的实现示例:

// main.js
import Vue from 'vue'
import VueRouter from 'vue-router'
import App from './App.vue'
import Home from './components/Home.vue'
import Login from './components/Login.vue'
import store from './store' // 假设你使用的是Vuex进行状态管理Vue.use(VueRouter)const router = new VueRouter({routes: [{ path: '/', component: Home },{ path: '/login', component: Login },// ...其他路由]
})router.beforeEach((to, from, next) => {const isLoggedIn = store.state.isLoggedIn; // 从Vuex获取登录状态if (!isLoggedIn && to.path !== '/login') {// 如果用户未登录且尝试访问非登录页,重定向到登录页,并带上目标路由next({path: '/login',query: { redirect: to.fullPath } // 将目标路由作为查询参数传递})} else if (isLoggedIn && to.path === '/login') {// 如果用户已经登录且访问登录页,重定向到首页或目标路由next({path: from.query.redirect || '/' // 从查询参数中获取目标路由,如果没有则重定向到首页})} else {next() // 允许访问}
});new Vue({router,store,render: h => h(App)
}).$mount('#app')// Login.vue
<template><div><!-- 登录表单 --></div>
</template><script>
export default {// ...methods: {login() {// 假设这是登录的API调用axios.post('/api/login', {// 用户名和密码}).then(response => {if (response.data.success) {// 登录成功,更新Vuex状态this.$store.commit('setLoggedIn', true);// 重定向到目标路由const redirect = this.$route.query.redirect || '/';this.$router.push(redirect);} else {// 登录失败,显示错误信息alert('Login failed');}});}}
};
</script>

在这个示例中,我们使用了Vuex来管理登录状态,但如果你的应用中没有使用Vuex,你可以使用其他方式来存储和更新登录状态,比如使用localStorage或者cookie。

请注意,示例中的/api/login是假设的后端API端点,你需要根据你的实际后端API进行替换。此外,示例中的setLoggedIn是一个假设的Vuex mutation,你需要根据你的Vuex store实现来替换。

这篇关于vue跳转页面 如果登录了直接跳转 没有登录登录完以后直接跳转,使用vuex管理登录状态的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1083570

相关文章

MySQL 衍生表(Derived Tables)的使用

《MySQL衍生表(DerivedTables)的使用》本文主要介绍了MySQL衍生表(DerivedTables)的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学... 目录一、衍生表简介1.1 衍生表基本用法1.2 自定义列名1.3 衍生表的局限在SQL的查询语句select

Mybatis Plus Join使用方法示例详解

《MybatisPlusJoin使用方法示例详解》:本文主要介绍MybatisPlusJoin使用方法示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录1、pom文件2、yaml配置文件3、分页插件4、示例代码:5、测试代码6、和PageHelper结合6

MySQL分区表的具体使用

《MySQL分区表的具体使用》MySQL分区表通过规则将数据分至不同物理存储,提升管理与查询效率,本文主要介绍了MySQL分区表的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录一、分区的类型1. Range partition(范围分区)2. List partition(列表分区)3. H

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

Go语言中Recover机制的使用

《Go语言中Recover机制的使用》Go语言的recover机制通过defer函数捕获panic,实现异常恢复与程序稳定性,具有一定的参考价值,感兴趣的可以了解一下... 目录引言Recover 的基本概念基本代码示例简单的 Recover 示例嵌套函数中的 Recover项目场景中的应用Web 服务器中

html 滚动条滚动过快会留下边框线的解决方案

《html滚动条滚动过快会留下边框线的解决方案》:本文主要介绍了html滚动条滚动过快会留下边框线的解决方案,解决方法很简单,详细内容请阅读本文,希望能对你有所帮助... 滚动条滚动过快时,会留下边框线但其实大部分时候是这样的,没有多出边框线的滚动条滚动过快时留下边框线的问题通常与滚动条样式和滚动行

CnPlugin是PL/SQL Developer工具插件使用教程

《CnPlugin是PL/SQLDeveloper工具插件使用教程》:本文主要介绍CnPlugin是PL/SQLDeveloper工具插件使用教程,具有很好的参考价值,希望对大家有所帮助,如有错... 目录PL/SQL Developer工具插件使用安装拷贝文件配置总结PL/SQL Developer工具插

SpringBoot3中使用虚拟线程的完整步骤

《SpringBoot3中使用虚拟线程的完整步骤》在SpringBoot3中使用Java21+的虚拟线程(VirtualThreads)可以显著提升I/O密集型应用的并发能力,这篇文章为大家介绍了详细... 目录1. 环境准备2. 配置虚拟线程方式一:全局启用虚拟线程(Tomcat/Jetty)方式二:异步

使用Python实现base64字符串与图片互转的详细步骤

《使用Python实现base64字符串与图片互转的详细步骤》要将一个Base64编码的字符串转换为图片文件并保存下来,可以使用Python的base64模块来实现,这一过程包括解码Base64字符串... 目录1. 图片编码为 Base64 字符串2. Base64 字符串解码为图片文件3. 示例使用注意