当前位置: 首页 > Web前端 > vue.js

vue登录跳转问题

时间:2023-03-31 19:31:06 vue.js

网页未登录时如何自动跳转到登录界面?在地址栏输入url后,如果==token==没有存储在当前localStorage中,而且我们要去的网页不是登录页面,可以想象我们应该强行跳转到登录页面。这可以通过使用vue-router的路由守卫来实现。使用beforeEach,当token存在或者要去的页面是登录页面(想登录,还是可以的~),直接放行;否则使用next跳转到登录界面(路由为'/login')//src/router/index.jsrouter.beforeEach((to,from,next)=>{consttoken=localStorage.getItem('token')if(token||to.path==='/login'){next()}else{next('/login')}})登录后如何跳转到首页(或其他页面)使用正确的用户名和密码?实现上面的约束后,我们就可以实现登录功能了。当用户名和密码正确后,点击登录,但是此时我们还不能跳转到首页,因为上面的路由守卫还需要token,我们应该可以从后台拿到token,并存储localStorage中的token,并使用router.replace('/')进行路由跳转。下面是一个小例子://使用element的表单函数加上constsubmitForm=(formRef)=>{formRef.validate((valid)=>{if(valid){//如果表单验证成功并且username和password都正确,然后存储token并跳转到首页,'我有令牌!')router.replace('/')}}else{console.log('error')}})}