Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
560 views
in Technique[技术] by (71.8m points)

vue-router嵌套路由定向问题

存在这样一个路由

routes: [
    {
      path: '/home',
      name: 'home',
      component: Nav,
      children: [
        {
          path: 'index',
          name: 'index',
          component: Index
        }
      ]
     }
    ],
        

Nav组件中的模板是这样的

<template>
  <div id="mains">
    <div class="navigation">
      <dl>
        <dt>首页</dt>
        <dt>其它</dt>
     </dl>
    </div>
    <router-view/>
  </div>
</template>

当访问/home/index时,没有任何问题,NavIndex组件都会渲染出来,Index来源于Nav中的router-view
当访问/home/时,由于嵌套路由的原因,只有Nav会被渲染出来,Nav中的router-view会被忽略。
好比下次图,Nav的地方会被渲染出来,而Index的地方会一片空白

clipboard.png

我想实现的是效果是访问/home/出现/home/index的页面。
琢磨了一下,我是通过一下方式实现,用一个路由路径作为中转进行重定向。

routes: [
    {
      path: '/home',
      name: 'home',
      component: Nav,
      redirect: '/',
      children: [
        {
          path: 'index',
          name: 'index',
          component: Index
        }
      ]
     },
     ,
    {
      path: '/',
      redirect: '/home/index'
    },
   ],

这样能达到我想要的效果,但是感觉这样写似乎显得很冗余,请问有其它更好的方法实现吗?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

解决方案

routes: [
    {
      path: '/home',
      name: 'home',
      component: Nav,
      redirect: '/home/index',
      children: [
        {
          path: 'index',
          name: 'index',
          component: Index
        }
      ]
     }
    ],

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...