Nuxt3-学习之路 06,路由-嵌套路由

3,237 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第6天,点击查看活动详情

Nuxt3-学习之路 06, 路由-嵌套路由

引言

本系列会以我的一个理解,来介绍并开始学习 Nuxt3

中间会插入自己所联系到的 乱七八糟 的 知识点

路由

上一节,我们讲了 动态路由 通过文件夹或文件名中带有*[]* 方括号的一个形式来体现。

在上面说的 静态路由 也好,动态路由 也罢,都是直接跳转到某个路由下,那么如何如何一个路由里面 嵌套 另一个路由呢?下面讲解下 嵌套路由

嵌套路由

我们先看一下,嵌套路由 的一个目录结构写法。

是一个 文件夹名为 parent 下面有个 child.vue 当然也可以是其他的 child2.vue,名字都是任意的。

但是还需要跟 parent 文件夹同级目录下同名的一个名为 parent.vue 文件。

这样的一个模式就是 嵌套路由

-| pages/
---| parent/
------| child.vue
---| parent.vue

上面的一个目录结构,会生成一个文件树为:

[
  {
    path: '/parent',
    component: '~/pages/parent.vue',
    name: 'parent',
    children: [
      {
        path: 'child',
        component: '~/pages/parent/child.vue',
        name: 'parent-child'
      }
    ]
  }
]
  • 注意 父页面 parentpath 是有 / 斜杠的
  • 而 子页面 childpath 是没有 / 斜杠的

我们编写下 parent.vuechild.vue 这两个文件的代码

注意想要显示 child.vue 里面的内容,需要在 parent.vue 页面中添加组件名为 <NuxtChild />才可以显示。注意写完后,需要重启项目,不然是404

image.png

image.png

这里是有一个疑问的,官网的一个显示是通过使用 <NuxtPage /> 这个组件。

image.png

当然两个我都测了,都可以进行使用。但是为了区分一下,我这里还是使用了 <NuxtChild />

最后通过 进行跳转,发现是可以成功到达,parent 页面和它的 child 子页面。

image.png

注意

如果想要 parent 下面,来一个默认的子页面,那么需要创建一个文件名为 index.vue 的文件。

注意这里需要 重启项目 后,我们就可以得到路由 parent 下的默认子页面。

image.png

image.png

image.png

根据目录结构生成的文件树为:

[
  {
    path: '/parent',
    component: '~/pages/parent.vue',
    children: [
      {
        path: '',
        component: '~/pages/parent/index.vue',
        name: 'parent'
      },
      {
        path: 'child',
        component: '~/pages/parent/child.vue',
        name: 'parent-child'
      }
    ]
  }
]

总结

学习了 嵌套路由 的结构以及使用 和 知道 嵌套路由 生成的一个文件树的结果,以及默认子路由页面的展示。