5月29日 01:55
Nuxt.js 的路由系统和 Vue Router 有什么不同?
核心区别:Vue Router 需要手动在 router.ts 中声明路由表(path/component 映射);Nuxt 基于文件系统自动生成路由——pages/ 目录的文件路径即路由路径。例如 pages/user/[id].vue 自动映射为 /user/:id,pages/user/index.vue 映射为 /user。Nuxt 还内置了 layouts/ 布局系统、middleware/ 路由中间件(替代 Vue Router 的 beforeEnter/全局守卫),以及 NuxtPage 和 NuxtLayout 组件处理嵌套路由渲染。底层仍使用 Vue Router,但零配置。
追问
- Nuxt 的嵌套路由怎么定义?和 Vue Router 的 children 有什么对应关系?
- 路由中间件的执行顺序是什么?全局、布局、页面级中间件谁先执行?
- 动态路由 [id].vue 在 SSG 模式下需要额外配置吗?
- 如何在 Nuxt 中自定义 Vue Router 的 scrollBehavior?
- Nuxt 3 的 typedPages 实验特性是做什么的?
写段代码
vue<!-- pages/user/[id].vue --> <script setup> definePageMeta({ middleware: 'auth', layout: 'dashboard' }) const route = useRoute() const id = route.params.id </script>