Vue重定向redirect的三种写法总结

 更新时间:2025年06月17日 10:45:58   作者:WZMeiei  
这篇文章主要介绍了Vue重定向redirect的三种写法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

一、写法 1:直接路径跳转(最简单)

const router = createRouter({
  routes: [
    {
      path: '/原路径',  // 用户访问的路径
      redirect: '/目标路径'  // 直接跳转到这个路径
    }
  ]
})

必记规则:

  1. redirect 后直接跟字符串路径(必须以 / 开头)。
  2. 路径必须存在:确保 /目标路径 在路由配置里有对应的组件。

示例:

{ path: '/old', redirect: '/new' }  // 访问 /old → 自动跳转到 /new

二、写法 2:通过路由名称跳转(更灵活)

const router = createRouter({
  routes: [
    {
      path: '/原路径',
      redirect: { name: '目标路由名称' }  // 通过路由的 name 属性跳转
    },
    // 必须先定义目标路由,并设置 name
    {
      path: '/目标路径',
      name: '目标路由名称',  // 给路由起个名字
      component: 目标组件
    }
  ]
})

必记规则:

  1. redirect 后是对象,必须包含 name 属性。
  2. 路由名称必须先定义:确保 name: '目标路由名称' 在路由配置里存在。

示例:

{ path: '/user', redirect: { name: 'profile' } }  // 访问 /user → 跳转到 name 为 profile 的路由

三、写法 3:动态跳转(带参数,最灵活)

const router = createRouter({
  routes: [
    {
      path: '/原路径/:参数名',  // 带动态参数的路径
      redirect: to => {
        // to 是当前访问的路由对象
        return {
          path: '/目标路径',
          query: { 参数名: to.params.参数名 }  // 传递参数
        }
      }
    }
  ]
})

必记规则:

  • redirect 后是箭头函数,函数返回一个对象。

参数传递

  • to.params.参数名 → 获取当前路由的动态参数(如 /user/123 中的 123)。
  • query: { 参数名: 值 } → 把参数转为查询参数(如 ?id=123)。

示例:

{
  path: '/search/:keyword',  // 访问 /search/vue
  redirect: to => {
    return {
      path: '/results',
      query: { q: to.params.keyword }  // 跳转到 /results?q=vue
    }
  }
}

四、核心规则速查表(必须记住!)

写法固定格式关键注意点
直接路径redirect: '/目标路径'路径必须以 / 开头,且已配置路由
路由名称redirect: { name: '目标名称' }必须先定义带 name 的路由
动态跳转redirect: to => ({ ... })用 to.params 获取当前路由参数

五、完整示例(三种写法对比)

import { createRouter, createWebHashHistory } from 'vue-router'
import Home from './views/Home.vue'
import Profile from './views/Profile.vue'
import Search from './views/Search.vue'
import Results from './views/Results.vue'

const router = createRouter({
  history: createWebHashHistory(),
  routes: [
    // 写法1:直接路径跳转
    { path: '/', redirect: '/home' },
    
    // 写法2:通过路由名称跳转
    { path: '/user', redirect: { name: 'profile' } },
    { path: '/profile', name: 'profile', component: Profile },
    
    // 写法3:动态跳转(带参数)
    { 
      path: '/search/:keyword', 
      redirect: to => ({
        path: '/results',
        query: { q: to.params.keyword }
      }) 
    },
    { path: '/results', component: Results },
    
    // 基础路由
    { path: '/home', component: Home },
  ]
})

export default router

六、一句话总结

重定向的本质是 “访问 A 路径时,自动跳转到 B 路径”

三种写法只是跳转方式不同:

  • 直接路径:简单粗暴,适合固定跳转。
  • 路由名称:解耦路径,适合路径可能变化的场景。
  • 动态跳转:带参数传递,适合需要参数处理的场景。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Vue如何使用Dayjs计算常用日期详解

    Vue如何使用Dayjs计算常用日期详解

    这篇文章主要给大家介绍了关于Vue如何使用Dayjs计算常用日期的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Vue 实现前端权限控制的示例代码

    Vue 实现前端权限控制的示例代码

    这篇文章主要介绍了Vue 实现前端权限控制的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • vue实现echarts饼图/柱状图点击事件实例

    vue实现echarts饼图/柱状图点击事件实例

    echarts原生提供了相应的API,只需要在配置好echarts之后绑定相应的事件即可,下面这篇文章主要给大家介绍了关于vue实现echarts饼图/柱状图点击事件的相关资料,需要的朋友可以参考下
    2023-06-06
  • Vue3实现vueFLow流程组件的详细指南

    Vue3实现vueFLow流程组件的详细指南

    VueFlow是一个专门为Vue.js框架设计的交互式可视化库,它允许开发者轻松创建和管理复杂的图形模型,如流程图、状态机、组织结构图等,本文给大家介绍了Vue3实现vueFLow流程组件的详细指南,需要的朋友可以参考下
    2024-11-11
  • Vue 3.0x中的Suspense和异步组件详解

    Vue 3.0x中的Suspense和异步组件详解

    这篇文章主要介绍了Vue 3.0x中的Suspense和异步组件,我们将讨论新的defineAsyncComponent函数,以及如何利用Suspense组件来更好地处理异步组件的加载和显示,需要的朋友可以参考下
    2023-08-08
  • Vue enter回车导致页面刷新问题及解决

    Vue enter回车导致页面刷新问题及解决

    这篇文章主要介绍了Vue enter回车导致页面刷新问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • 基于Vue实现关键词实时搜索高亮显示关键词

    基于Vue实现关键词实时搜索高亮显示关键词

    这篇文章主要介绍了基于Vue实现关键词实时搜索高亮显示关键词,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • Vue获取微博授权URL代码实例

    Vue获取微博授权URL代码实例

    这篇文章主要介绍了Vue获取微博授权URL代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • vue-router实现webApp切换页面动画效果代码

    vue-router实现webApp切换页面动画效果代码

    本篇文章主要介绍了vue实现app页面切换效果实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • vue+webpack实现异步加载三种用法示例详解

    vue+webpack实现异步加载三种用法示例详解

    这篇文章主要介绍了vue+webpack实现异步加载的三种用法,文中给大家提到了vue+webpack实现异步组件加载的代码,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2018-04-04

最新评论