Vue3-32-路由-重定向路由

什么是重定向

路由的重定向 :将匹配到的路由 【替换】 为另一个路由。
redirect : 重定向的关键字。

重定向的特点

1、重定向是路由的直接替换,路由的地址是直接改变的;
2、在没有子路由配置的情况下,重定向的路由可以省略 component 属性的配置,因为根本不会渲染组件;

重定向的几种写法

1.直接使用路径重定向

const routsList = [
    {path:'/a',name:'aroute',component:componentA},
    // 当请求路径是 /b2 时,会重定向到 /a
    {path:'/b2',name:'b2route',redirect:'/a'},
]
重定向前的路由重定向执行后的路由
在这里插入图片描述在这里插入图片描述

2.使用命名路由重定向

此时就需要给 redirect 指定一个 包含 name 属性的对象值,
这个 name 呢 ,就是重定向到的目标路由的 name。

const routsList = [
    {path:'/a',name:'aroute',component:componentA},
     // 使用命名路由进行重定向操作 : 给redirect 一个对象值
    {path:'/b2',name:'b2route',redirect:{name:'aroute'}},
]
重定向之前的路由重定向之后的路由
在这里插入图片描述在这里插入图片描述

3.使用方法的形式返回重定向的目标路由

当 重定向的目标路由需要参数 或着 重定向前需要做一些其他的逻辑时,
可以使用这种方式。
方法的参数 :是重定向前的路由地址
方法的返回值 : 是目标路由对象,可以直接是一个字符串路径,也可以是一个路由对象。

const routsList = [
    {path:'/a',name:'aroute',component:componentA},
    {
        path:'/b3/:abc',
        redirect: (to:any) =>{
            console.log('routsList中 重定向的 to 对象 : ',to)
            // return '/a'; 直接返回一个字符串路径的方式
            // 返回一个对象的方式
            return {path:'/a', query:{pa:to.params.abc}}
        }
    }
]
重定向前重定向后
在这里插入图片描述在这里插入图片描述

》控制台打印的路由对象

在这里插入图片描述

4.重定向到相对路径

此处对于官网提到的那个案例,并没有实际测试出对应的效果,还有待探究。
》 官网的案例如下:

const routes = [
  {
    // 将总是把/users/123/posts重定向到/users/123/profile。
    path: '/users/:id/posts',
    redirect: to => {
      // 该函数接收目标路由作为参数
      // 相对位置不以`/`开头
      // 或 { path: 'profile'}
      return 'profile'
    },
  },
]
  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vue-element-admin模板的路由解析是通过创建路由实例并配置路由表来实现的。在该模板中,路由表被分为两部分:constRouter和动态添加的路由。 constRouter是一个数组,包含了不需要验证的路由,例如登录页和404页面。这些路由被放在constRouter中,并且不需要权限验证。 动态添加的路由通过在router/permission.js文件中配置。每个路由都有以下属性: - path: 路径 - name: 路由名称 - component: 组件 - redirect: 重定向路径 - meta: 路由元信息,包括标题、图标和角色权限 - children: 子路由 在permission.js文件中,可以根据需要添加多个路由,并且可以嵌套子路由。每个路由都可以配置不同的权限角色,以控制访问权限。 总的来说,vue-element-admin模板的路由解析是通过创建路由实例并配置路由表来实现的,其中constRouter包含了不需要验证的路由,而动态添加的路由可以根据需要配置不同的权限角色。 #### 引用[.reference_title] - *1* [vue-element-admin动态路由权限、菜单](https://blog.csdn.net/feifei9989/article/details/129611533)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [vue-element-admin如何添加路由以及如何修改title](https://blog.csdn.net/weixin_45973832/article/details/129264607)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [vue-element-admin 动态路由 vue-element-admin 配置 动态路由 vue-element-admin 实现 动态路由 vue-...](https://blog.csdn.net/qq_40739917/article/details/125943971)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值