Vue3——404、重定向以及导航守卫

Vue3跳转404页面

import NotFound from '@/view/NotFound/404.vue'
  {
    path: '/:pathMatch(.*)',
    //访问主页的时候 重定向到index页面
    redirect: '/404',
  },
    {
    path: '/404',
    name: '/404',
    component: NotFound
  },

路由重定向

  {
    path: '/',
    redirect: '/index',
    meta: {
      title: '首页',
      isShow: true,
    }
  },
    {
    path: '/list',
    name: '模型列表',
    component: Model,
    children: [{
      path: '/list',
      name: '首页',
      component: () => import('@/view/3DModel/List.vue'),
      meta: { title: '首页', isShow: true, },
    },
    {
      path: '/list/initmodel',
      name: '模型详情',
      component: () => import('@/view/3DModel/InitModel.vue'),
      meta: { title: '模型详情', keepAlive: true, isShow: true, },
    },
    {
      path: '/getmodel/management',
      name: 'management',
      component: () => import('@/view/3DModel/Management.vue'),
      meta: { title: '模型管理', isShow: true, },
    },
    {
      path: '/getmodel/category',
      name: '分类管理',
      component: () => import('@/view/3DModel/Category.vue'),
      meta: {
        title: '分类管理',
        isShow: true,
      }
    },
    ]
  },

创建导航守卫

router.beforeEach((to, from, next) => {
  if (to.path == '/login') {
    next()
  } else {
    const token = window.sessionStorage.getItem('token')
    if (!token) {
      next('/login')
    } else {
      next()
    }
  }
})
### Vue.js 跆由重定向实现方法 在 Vue.js 中,路由重定向可以通过 `redirect` 属性来完成。此属性允许开发者指定当访问某个路径时自动跳转到另一个路径。以下是具体的实现方法以及代码示例。 #### 基本语法 在 Vue Router 的配置对象中,可以为某一路由规则设置 `redirect` 字段。该字段接受目标路径作为参数,在用户访问当前路径时会立即触发重定向操作[^2]。 ```javascript const router = new VueRouter({ routes: [ { path: '/', redirect: '/home' // 当访问根路径 '/' 时,重定向至 '/home' }, { path: '/home', component: HomeComponent } ] }); ``` 上述代码展示了如何将根路径 `/` 设置为重定向到 `/home` 页面[^3]。 #### 动态匹配与命名视图中的重定向 除了简单的字符串形式外,还可以利用动态参数或者命名路由来进行更复杂的重定向逻辑。例如: ```javascript const router = new VueRouter({ routes: [ { path: '/user/:id', redirect: to => `/profile/${to.params.id}` // 使用函数返回新的路径 }, { path: '/profile/:userId', name: 'UserProfile', component: ProfileComponent } ] }); ``` 在此例子中,如果用户尝试访问类似于 `/user/123` 这样的 URL,则会被重定向到 `/profile/123` 上去。 #### 导航守卫配合使用 有时可能需要基于某些条件决定是否执行重定向动作,这时就可以结合导航守卫 (Navigation Guards) 来达成目的。比如下面这个场景——未登录状态下强制跳转回登录页: ```javascript router.beforeEach((to, from, next) => { if (!isAuthenticated && to.name !== 'Login') { return next({ name: 'Login' }); // 如果未认证则转向登录页面 } else { next(); } }); ``` 这里展示了一个全局前置守卫的例子,其中判断用户的认证状态并据此做出相应的处理措施。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Southern Wind

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值