注册页路由显示问题

注册页路由显示问题

视频中,老师这里跳不到注册页,应该和判断那个地方没关系吧,我的代码和老师的一样,但是我写全路径,不写&&to name !=='register',依然可以跳到注册页

https://img1.sycdn.imooc.com//climg/626262120916613506070373.jpg

https://img1.sycdn.imooc.com//climg/62626212099406cf05320217.jpg

https://img1.sycdn.imooc.com//climg/626262120908503f10470291.jpg

还是说,我的代码哪里有问题啊

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕星星 2022-04-22 16:33:13

同学你好,意思是这样少写注册的判断就能跳转到注册页面了吗?

https://img1.sycdn.imooc.com//climg/626267b5092d9de408400190.jpg

老师点击注册按钮测试不会跳转注册页面。没有登录,isLogin的值为false,并且去注册页,不等于Login成立,就会跳转到登录页面,不会是注册页面。也就是加不加to.name!=='register'的条件不影响效果。

不知道同学是怎么测试的,建议重启项目试试。或者将自己router/index.js文件代码全部粘贴上来,不要截图,便于帮助测试。

祝学习愉快!

  • 提问者 大龄前端菜鸟 #1
    import { createRouter, createWebHashHistory } from 'vue-router'
    import Home from '../views/home/Home'
    import Login from '../views/login/Login'
    import Register from '../views/register/Register'
    
    const routes = [{
            path: '/',
            name: 'Home',
            component: Home
        }, {
            path: '/register',
            name: 'Register',
            component: Register
        }, {
            path: '/login',
            name: 'Login',
            component: Login,
            beforeEnter(to, from, next) {
                const { isLogin } = localStorage;
                isLogin ? next({ name: 'Home' }) : next();
                // const isLogin = localStorage.isLogin;
                // if (isLogin) {
                //     next({ name: 'Home' });
                // } else {
                //     next();
                // }
            }
        },
        // {
        //   path: '/about',
        //   name: 'About',
        //   // route level code-splitting
        //   // this generates a separate chunk (about.[hash].js) for this route
        //   // which is lazy-loaded when the route is visited.
        //   component: () => import(/* webpackChunkName: "about" */ '../views/About.vue')
        // }
    ]
    
    const router = createRouter({
        history: createWebHashHistory(),
        routes
    })
    
    router.beforeEach((to, from, next) => {
        const isLogin = localStorage.isLogin;
        if (!isLogin && to.name !== "Login") {
            next({ name: 'Login' });
        } else {
            next()
        }
        next();
    })
    
    export default router

    老师,这厮我的代码

    2022-04-22 17:27:28
  • 提问者 大龄前端菜鸟 #2

    老师,我好像找到原因了,https://img1.sycdn.imooc.com//climg/62627a2409c41a9f13070587.jpg

    2022-04-22 17:49:51
  • 自己能找到问题是很棒的哦!登录过再输入注册地址,isLogin为true,不满足if条件,执行else,就会跳转到注册页面。

    另外这里代码这里是多余的,可以去掉

    https://img1.sycdn.imooc.com//climg/62627ac409f7506f05210231.jpg

    2022-04-22 17:54:03
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师