vue 中给 写死的路由 中 增加动态添加路由

本文详细介绍如何在Vue项目中,从初始静态路由配置开始,逐步引入动态路由,以满足页面跳转过程中参数传递的需求。通过具体代码示例,展示如何利用Vue Router的addRoutes方法,在运行时动态添加带有参数的路由,特别适用于需要根据实时数据动态调整路由标题的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要介绍的是:一开始 路由写死了,但是在页面跳转的过程中需要动态增加路由(传参)的情况。

step1: 写死的路由。

import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)

export const constantRoutes = [
  {
    path: '/login',
    component: () => import('@/views/login/index'),
    hidden: true
  },
  {
    path: '/service',
    component: Layout,
    redirect: '/service/list/list',
    name: 'Service',
    meta: { title: '服务管理', icon: 'example' },
    children: [
      {
        path: 'list',
        name: 'ServiceManage',
        component: () => import('@/views/service/serviceManage'),
        children: [
          {
            path: 'list',
            name: 'ServiceList',
            component: () => import('@/views/service/serviceList'),
            meta: { title: '服务列表' }
          }
        ]
      },
      {
        path: 'log',
        name: 'Log',
        component: () => import('@/views/service/log'),
        meta: { title: '监控日志' }
      }
    ]
  },
]

const createRouter = () => new Router({
  routes: constantRoutes
})

const router = createRouter()

export default router

step2:动态增加路由(本文重点)

主要目的是:写死的路由中不能传递参数,如果有传参这样的需求,用这种方式还是很容易实现的,比如:需求需要 路由中的title是可变的。

this.$router.addRoutes([{
   path: '/service',
   component: Layout,
   redirect: '/service/list/list',
   name: 'Service',
   meta: { title: '服务管理', icon: 'example' },
   children: [
     {
        path: 'list',
        name: 'ServiceManage',
        component: () => import('@/views/service/serviceManage'),
        children: [
           //此处为动态增加的路由
           {
              path: 'monitor',
              name: 'Monitor',
              component: () => import('@/views/service/monitor'),
              hidden:true,
              //title中可以传参数
              meta: { title: '查看监控-'+row.serviceId+'-'+row.adminInstanceId }
           }
         ]
      }
    ]
}])
this.$router.push(
   { path: 'monitor',
     query: {adminInstanceId: row.adminInstanceId}
   }
)

这样子,需要增加的动态路由就添加到了 节点/service 的子路由的子路由上。

如有更好的方法,欢迎讨论交流。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值