vue.js - 在 Nuxt 中将多个新路径扩展到单个页面

标签 vue.js vuejs2 routes nuxt.js

我正在努力解决项目的 nuxt 文件夹/路由结构:

我想要实现: 所有这些都应该显示 pages/data/index.vue:

www.example.com/data 
www.example.com/data/region
www.example.com/data/region/industry

然后通过$route-class访问参数区域或行业。

如果我添加 _region 文件夹和 _industy.vue 它将显示这些文件,并且我想显示和使用 index.vue .

最佳答案

编辑:由于地区行业可能是动态的。
您可以在 nuxt.config.js 文件中使用此设置

export default {
  router: {
    extendRoutes(routes, resolve) {
      routes.push(
        {
          name: 'data-region-industry',
          path: '/data/*/*',
          component: resolve(__dirname, 'pages/data/index.vue'),
        },
        {
          name: 'data-region',
          path: '/data/*',
          component: resolve(__dirname, 'pages/data/index.vue'),
        },
      )
    }
  }
}

通过此配置,您可以转到 /data/data/:region/data/:region/:industry仅包含您的 index.vue 文件。无需创建一些奇怪的目录或文件,您可以将所有内容保存在一个地方。

PS:顺序重要。将最具体的放在顶部,否则 /data/* 也会捕获 /data/*/* 并且您将永远无法到达 data-region-industry。这可以在 Vue 开发工具的 router 选项卡中快速进行双重检查。

这取自官方文档:https://nuxtjs.org/docs/2.x/features/file-system-routing#extendroutes
我强烈建议您阅读一下,特别是如果您正在使用 Named views .


至于 URL 捕获,从未听说过 $route-class,但您可以在 / 上进行某种拆分,非常可行!

关于vue.js - 在 Nuxt 中将多个新路径扩展到单个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67998825/

相关文章:

vue.js - ag-grid-vue 出错 找不到组件 XXX,是不是忘记配置这个组件了?

node.js - 如何在 Azure Functions 中进行路由?

c - 找不到 rt_msghdr 的结构定义

twitter-bootstrap - 在 Vue 中,v-绑定(bind)不适用于 Bootstrap Toggle Checkboxes 的 "checked"属性?

javascript - 如何在 Electron 应用程序中显示网络摄像头视频源?

vue.js - 组件未显示在 Vue DevTools 中

vue.js - 在组件和 Axios 中使用时如何使数据工作?

javascript - 如何将新用户添加到 db.json

javascript - 为什么 "Redirected when going from "/login"to "/"via a navigation guard."出现了?

asp.net - 应用程序根的默认路由