vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > Vue重定向redirect的三种写法

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

作者: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.参数名 }  // 传递参数
        }
      }
    }
  ]
})

必记规则:

参数传递

示例:

{
  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 路径”

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

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

您可能感兴趣的文章:
阅读全文