页面显示

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

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

2回答
好帮手慕星星 2022-10-25 16:23:13

同学你好,截图建议如下:

https://img1.sycdn.imooc.com//climg/63579cb4095f869907320352.jpg
另外建议检查loginView页面是否引入了,提示说找不到匹配的路由

https://img1.sycdn.imooc.com//climg/63579df209ddbc8f06460081.jpg

自己调整测试下,如果还有问题,建议将代码粘贴上来,不要截图,便于帮助测试。

祝学习愉快!

  • 提问者 宣与慕 #1

    路由↓

    import { createRouter, createWebHashHistory } from 'vue-router'
    import HomeView from '../views/home/HomeView'
    import LoginView from '../views/login/LoginView'
    import RegisterView from '../views/register/RegisterView'
    
    const routes = [
      {
        path: '/',
        name: 'Home',
        component: HomeView
      },
      {
        path: '/register',
        name: 'Register',
        component: RegisterView
      }, {
        path: '/login',
        name: 'Login',
        component: LoginView,
        // 只有访问login页面之前才会执行这个函数
        // 每个路由项里面都可以加beforeEnter这个函数
        beforeEnter(to, from, next) {
          const { isLogin } = localStorage;
          // 如果已经登录了,就跳到首页
          // 如果未登录,就正常跳转到登录页面
          isLogin ? next({ name: 'HomeView' }) : 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/AboutView.vue')
      // }
    ]
    
    const router = createRouter({
      history: createWebHashHistory(),
      routes
    })
    
    // router.beforeEach的意思是每次做路由跳转之前,都会执行这个方法,不管什么路由,做切换时都会执行
    router.beforeEach((to, from, next) => {
      // 当路由要跳转时,to表示要跳到的页面的信息,from表示从哪里跳过来的信息
      const { isLogin } = localStorage;
      // 页面做跳转前,判断是否登录了,或者要跳到的页面是login页面
      (isLogin || (to.name === 'LoginView' || to.name === 'RegisterView')) ? next() : next({ name: 'LoginView' })
      // next可以理解为中间件继续执行的方法
      // 调用next()表示继续往下执行
      // next();
    })
    
    export default router


    2022-10-25 18:28:37
  • 好帮手慕星星 回复 提问者 宣与慕 #2

    login页面中的name值是LoginView吗?

    https://img1.sycdn.imooc.com//climg/6357bbac09bfe13712100714.jpg

    需要保持一致,建议再检查下。

    2022-10-25 18:34:39
  • 提问者 宣与慕 回复 好帮手慕星星 #3

    这个应该是没问题的,这些都是上一节课程的代码,上节课还是好使的

    2022-10-25 20:28:53
宣与慕 提问者 2022-10-25 16:15:18

代码中52行的next()是注释掉了,图片截取错误


问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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