将 2 条路线设置为同一组件的最佳方法是什么

What is the best way to set 2 routes to the same component

我知道它的基本原理,但我无法在 Vue.js 中找到这方面的最佳实践。

我正在使用 Vue Cli 3,需要获取一些指向应用程序中同一主页的路由。

基本上它应该是一个附属编号作为参数 - 或者根本没有附属。

所以我所做的是,在 router.js - 为同一个主组件提供 2 条不同的路径:

    {
      path: '/',
      name: 'home',
      component: Home
    },
    {
      path: '/affId=:affiliateNumber?',
      name: 'home',
      component: Home
    },

此代码有效,但显然不是一个好的解决方案,因为我也收到此警告 - '[vue-router] 重复的命名路由定义'

完成它的最佳方法是什么?

非常感谢。

您收到错误只是因为您对两条路线使用相同的 name(主页)。您可以将这些调整为 e。 G。 homehome-2 之类的。最佳做法是仅使用 1 条路线并相应地调整参数和查询。

在您的示例中,您使用了错误的路由映射。查询参数不应该跟在斜杠后面。相反,它应该始终由 ?.

关注当前路线

根据您的用例,您可以简化路线。如果你需要访问一个 URL 参数,你可以使用这样的路由:

{
  path: '/:affiliateNumber',
  name: 'home',
  component: Home
},

您可以随时在代码中访问 :affiliateNumber。这也可能是一条子路线,父路线可能是 path: '/'.

但是,在您的情况下,仅使用查询参数就足够了。这样做你不必关心子路由或其他任何东西,因为查询参数总是可选的。那就是说你可以像这样离开你的路线......

{
  path: '/',
  name: 'home',
  component: Home
},

... 并仅使用 /home?affId=123.

附加您想要的任何查询参数