vue-router路由问题

clipboard.png

这是一开始的地址,当我点击收藏还有热门的时候,跳转到都是同一个组件,数据是不同的,我点击的时候从首页带了个id过去,代码是这样的

 collection() {
   this.$router.push({path: 'notSee', query: { id: '1' }});
   },
   hot() {
   this.$router.push({path: 'notSee', query: { id: '2' }});
   }

clipboard.png

然后跳到这里,数据可以根据点击的按钮不同拿到相应的数据,但是地址不是我想要的,我想要的是,点击收藏的时候地址是index/collection,点击热门的时候地址是index/hot,请问怎么解决这个问题,感觉比较麻烦。

notSee是我全局注册的一个组件名,这个组件在很多地方都会用到,只是数据不同,如何让这个组件名可以进行改变?

求大神解答

阅读 2.3k
1 个回答

这貌似跟组件名称没有关系,而是跟你router里面配置的路由路径有关系.
然后,看你描述的需求,id为1的时候是index/collection这样的判断,如果想实现的话,
只能是配置路由的时候直接写好.
点击第一个id为1的图标 跳转路由index/collection 这样才能显示正确的路径.

ps 官方路由说明里面有一个路由别名,你可以查一下资料.

别名

『重定向』的意思是,当用户访问 /a时,URL 将会被替换成 /b,然后匹配路由为 /b,那么『别名』又是什么呢?

/a 的别名是 /b,意味着,当用户访问 /b 时,URL 会保持为 /b,但是路由匹配则为 /a,就像用户访问 /a 一样。

上面对应的路由配置为:

const router = new VueRouter({
  routes: [
    { path: '/a', component: A, alias: '/b' }
  ]
})
『别名』的功能让你可以自由地将 UI 结构映射到任意的 URL,而不是受限于配置的嵌套路由结构。

但是还是没有满足你自动匹配改变路径的这个需求。貌似还得回归到写死的这条路上来

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进