Skip to content

重定向和别名

重定向和别名

简介

在 Vue Router 中,路由重定向是一种将用户从一个 URL 自动导航到另一个 URL 的机制。这通常用于确保用户访问某个 URL 时,会自动跳转到另一个指定的 URL,以提供更好的用户体验或确保页面的正确访问。

重定向

配置重定向时,需要在路由配置对象中使用 redirect 属性。这个属性接收一个对象作为参数,可以使用目标路由的 path 或者 name 属性来确定重定向的目标路由。

代码示例

继续使用上节示例,设置 Ceshiren 页面的路由重定向到 Redirect 页面,代码如下所示:

Redirect.vue

<template>
    <div>
        <h2>重定向路由成功</h2>
    </div>
</template>

index.js

import {createRouter,createWebHashHistory} from 'vue-router'
import Ceshiren from '../components/Ceshiren.vue'
import Redirect from '../components/Redirect.vue'
const routes=[
    {
        path:'/ceshiren',
        component:Ceshiren,
        // 重定向路由,可以使用 name 或者 path 属性
        // redirect:{name: 'redirectname'}
        redirect:{path:'/redirect'}
    },
    {
        path:'/redirect',
        component:Redirect,
        name:'redirectname'
    }
]

访问页面点击 点击进入 Ceshiren 页面 ,进入 Redirect 页面,页面重定向成功,实现效果如下图所示:

别名

Vue 还提供对路由别名的设置,通过属性 alias 可以为路由规则指定一个额外的名字,以便在应用程序中引用该路由。

alias 属性可以接收一个字符串或一个字符串数组,用于指定路由的别名路径,语法如下所示:

{
  path:'/dashboard',
  component:Dashboard,

  // 设置一个别名
  alias:'/admin' 

  // 设置多个别名
  // alias:['/admin','control-penal'] 
}

别名的优点

  1. 简化路径:在应用程序中使用别名可以更简洁、易记的路径来访问特定的页面,而无需担心实际的路由路径。
  2. 改变路由路径:实际开发会存在不改变实际路由,但改变用户所看到的路径的情况,别名使得这个过程更容易。
  3. 提高用户体验:别名可以改善用户在浏览器地址栏中看到的路径,使其更加友好和易于理解。
  4. 路由重构:在进行路由重构时,可以保留旧的路由路径作为别名,以确保已有的链接不会失效。

代码示例

下面是使用的一个示例:

index.js

import {createRouter,createWebHashHistory} from 'vue-router'
import Ceshiren from '../components/Ceshiren.vue'
import Hogwarts from '../components/Hogwarts.vue'
import HogChild from '../components/HogChild.vue'
const routes=[
    {
        path:'/ceshiren',
        component:Ceshiren,
        // 设置单个别名
        alias:'/rename_ceshiren'
    },
    {
        path:'/hogwarts',
        component:Hogwarts,
        // 设置多个别名
        alias:['/hog_rename','/rename_hog'],
        children:[
            {
                path: "hogchild",
                component: HogChild,
                name: 'hogchildname',
            }
        ]
    }
]

这时使用别名分别访问以下页面,页面效果如图所示:

  • http://127.0.0.1:5173/#/hog_rename
  • http://127.0.0.1:5173/#/rename_hog

访问 http://127.0.0.1:5173/#/rename_ceshiren,页面效果如下图所示:

此外,别名的路径可以是相对路径或绝对路径。

相对路径会被解释为相对于当前路由的路径,而绝对路径会被解释为相对于根路径的路径:

  • alias: 'admin' 会被解释为相对路径。
  • alias: '/admin' 会被解释为绝对路径。

总结

本节介绍了路由重定向和别名的设置,掌握本节你将能够灵活地配置路由,从而丰富和优化应用程序的导航体验。