vue-router嵌套路由中无父级组件的设置方法

解决方法: component: {render: (e) => e("router-view")},

需求

在一些情况下,会有设置二级路由,但一级路由不需要 component 的特殊需求

比如我在data路由下需要List页.../#/data/list,shop页.../#/data/shop 等,但每一个页面中没有任何相同的地方,也就是在.../#/data路由下不需要component

如下路由

[{
    path: '/data',
    name: 'data',
    meta: {
        name: 'data页',
        auth: true,
        icon: 'icon-account'
    },
    component: Data, // 需求是这里引入为空,但children中的component还会有东西
    children: [{
        path: 'list',
        name: 'list',
        meta: {
            name: '列表页',
            auth: true
        },
        component: List,
    }, {
        path: 'shop',
        name: 'shop',
        meta: {
            name: '商店页',
            auth: true
        },
        component: Shop
    }, {
        path: 'detail',
        name: 'detail',
        meta: {
            name: '查看',
            auth: true
        },
        component: Detail
    }]
}]

解决办法

目前只找到这两种解决办法,没有找到不写component的方法

/data中,如果不写component 属性,子集的component也不会显示

  1. 新建一个页面,在页面中写
<template>
    <router-view />
</template>

然后component: 上边那个页面

  1. 可以将component 写成component: {render: (e) => e("router-view")},
  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
当使用vue-router由守卫动态添加嵌套由时,可能会出现无效的情况。这通常是由于由守卫的执行时机造成的。 由守卫分为全局守卫和由独享守卫两种,而嵌套由的添加通常是在全局前置守卫(router.beforeEach)或组件内的由独享守卫(beforeRouteEnter)进行的。 然而,由于由守卫是立即执行的,而由的添加是异步的,因此在守卫执行时,新的嵌套由可能尚未添加到,导致无效的情况。 为了解决这个问题,可以使用异步组件和动态导入来确保由添加完成后再进行跳转。 1. 在全局前置守卫,使用异步组件和动态导入来加载嵌套由所在的组件。 2. 在异步组件加载完成后,在回调函数执行由的添加。 3. 确保在由添加完成后再进行跳转操作。 示例代码如下: ```javascript router.beforeEach((to, from, next) => { if (to.path === '/dynamic-route') { // 异步组件和动态导入加载嵌套由所在的组件 import('@/views/DynamicRoute.vue') .then(component => { const nestedRoutes = [ { path: 'nested-route', component: NestedRouteComponent } ]; // 添加嵌套由 to.addRoutes(nestedRoutes); // 确保由添加完成后再进行跳转 next({ ...to }); }) .catch(error => { // 处理错误 }); } else { next(); } }); ``` 通过以上方法,我们可以确保动态添加的嵌套由在由守卫执行时已经被添加到,从而避免了无效由的问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值