nuxt路由动态路由配置
- 开源代码
- 2025-08-14 15:15:01

router 路由基础
router会在服务器端和客户端执行。
故对于router中接口axios调用,需做判断
if(process.browser){
baseURL = "/"
}else{ //node端
baseURL = "http://127.0.0.1:8088/"
}
在Nuxt.js中,默认情况下,路由是根据.vue文件的目录结构自动生成的。 _id.vue 可以生成接收params参数的router
如果不知道 URL 结构的深度,您可以使用_.vue动态匹配嵌套路径( 处理 404 页面符合_.vue页面的逻辑 )
文件结构:
pages/
--| _slug/
-----| comments.vue
-----| index.vue
--| users/
-----| _id.vue
--| _.vue
--| index.vue
匹配路径:
/ => index.vue
/users/123 => users/_id.vue
/about _.vue
/about/careers _.vue
生成的路由表:
router: { routes: [ { name: 'index', path: '/', component: 'pages/index.vue' }, { name: 'users-id', path: '/users/:id?', // params参数的router。 route.params.id component: 'pages/users/_id.vue' }, { name: 'slug', path: '/:slug', // params参数的router。 route.params.slug component: 'pages/_slug/index.vue' }, { name: 'slug-comments', path: '/:slug/comments', // params参数的router。 route.params.slug component: 'pages/_slug/comments.vue' } ]你会发现名称为 users-id 的路由路径带有 :id? 参数,表示该路由是可选的。如果你想将它设置为必选的路由,需要在 users/_id 目录内创建一个 index.vue 文件。
动态生成nuxt路由:可以通过使用extendRoutes自定义路由配置来禁用默认的路由生成方式,从而实现不根据.vue文件目录结构生成路由。
以下是如何禁用默认路由生成的步骤:
在Nuxt项目的根目录下创建一个nuxt.config.js文件(如果已存在则跳过此步骤)。
在nuxt.config.js文件中添加一个router配置项。如果已存在router配置项,则修改或添加相应的选项。
import { sortRoutes } from '@nuxt/utils' export default { router: { // 禁用默认的路由生成 base: '/', extendRoutes(routes, resolve) { return [ // 添加你自定义的路由配置 sortRoutes(routes) ] } }, // ... }上述代码中的extendRoutes选项是一个函数,它可以让你自定义路由配置。你可以在这个函数中添加你所需的路由配置。
nuxt2中只能基于extendRoutes配置路由,会在build编译阶段执行生成路由。不支持在plugin插件中router.push动态添加路由。 nuxt3中支持在plugin中动态添加路由。
export default { //nuxt2 不支持 asyncData({ app, route }) { //$router: 路由操作对象 和 $route: 路由信息对象 app.router.push({ path: '/test', name: 'test', component: () => import('~/pages/test.vue') }) } } export default defineNuxtPlugin(({ $router })=>{ //nuxt3 支持 $router.addRoute({ path: '/test', name: 'test' component: () => import('~/pages/test.vue') }) })nuxt路由动态路由配置由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“nuxt路由动态路由配置”