文件放在哪,URL 就是什么:一个规则查询器 + 五道反向练习

上半部分不是写死的十条对照,而是一套真在跑的映射规则:输入 app/pages 下的相对路径(前缀可写可不写),下面实时给出 URL、路由名、params 形态和该注意的事。 下半部分是反过来考你:给 URL 选文件。

速查表:文件名模式 → URL → params

app/pages 下的文件生成的 URL取参数的方式说明
index.vue/—首页,index 只代表它所在层级的根
about.vue/about—最常见:文件名去后缀就是路径段
users/index.vue/users—和 users.vue 效果相同(URL 一样)
users/[id].vue/users/:idroute.params.id(字符串)方括号 = 动态段,一段只吃一格
users/[id]/posts/[pid].vue/users/:id/posts/:pidparams.id、params.pid参数可以出现在任意一段
blog/[...slug].vue/blog/:slug*(写成 /blog/* 理解就行)params.slug 是数组兜底通配:/blog/2026/05/a → ['2026','05','a']
doc/[[id]].vue/doc/:id?访问 /doc 时 params.id 为 undefined双层方括号 = 可选参数
(shop)/cart.vue/cart—圆括号是「分组」,只做代码归类,不进 URL
-draft.vue不生成路由—以 - 开头的文件/目录被直接跳过
父.vue + 父/子.vue/父 与 /父/子—父文件里必须渲染 <NuxtPage />,否则子页面不显示

另外两条:动态段名字随便起([id] 和 [userId] 生成两条互不相干的路由); 一个目录里 x.vue 和 x/index.vue 同时存在时,x/index.vue 会变成 x.vue 的默认子路由(/x 命中它)。

[迷你控制台] 每次换算、每道题作答都会在这里解释规则