如何在 NuxtJs 路由中使用 *(星号)?

Posted

技术标签:

【中文标题】如何在 NuxtJs 路由中使用 *(星号)?【英文标题】:How to use * (asterisk) in NuxtJs route? 【发布时间】:2018-10-01 19:22:30 【问题描述】:

在由 vue-cli 生成的普通 Vue(不是 Nuxt)项目中,在 vue-router 中使用 * 就像这样:

export default new Router(
  routes: [
    
      path: "/about",
      name: "about",
      component: About,
      children: [
        
          path: "*",
          component: About
        
      ]
    
  ]
);

所有这些路线都有效:

/about /about/123 /about/123/abc/123/abc

有没有办法在 NuxtJs 中做到这一点?在 Nuxt 中,路由是从 pages 文件夹中的文件自动生成的。但* 是文件/文件夹名称的无效字符。

【问题讨论】:

【参考方案1】:

您使用_ 表示它是一个通配符,例如:

pages/about/_.vue

将解析/about/*,我相信这就是您正在寻找的

如果你想要动态目录结构:

pages/about/_/abc/_/abc.vue

将解析about/123/abc/123/abc(但没有多大意义)

【讨论】:

谢谢。有用 。我可以知道你是怎么知道的吗?我似乎在任何地方都找不到它 @JacobGoh 对不起,我不知道。 Nuxt 文档很糟糕,我刚刚使用 Nuxt 有一段时间了。 @JacobGoh 在文档中找到,it's not super clear, but you can see an example here 谢谢。我实际上是在问这个问题,因为我很好奇如何解决这个问题 ***.com/questions/49951479/… 。我认为你的方法可以解决问题,你可以回答。

以上是关于如何在 NuxtJs 路由中使用 *(星号)?的主要内容,如果未能解决你的问题,请参考以下文章

nuxtjs中使用路由守卫

如何在 nuxtjs 中的参数路由器之间添加查询

动态路由 NuxtJS

推送路由(从 vueJS 移动到 nuxtJS)

nuxtjs如何部署cdn及区分发布环境

家里增加个软路由,请问应该如何布局网络更合理?