获取vue-router的名称和params路由

Til*_*ter 9 json-ld vue.js vue-router vuejs2

我正在使用Vue与vue-router.对于列表视图中的产品项,我想生成JSON-LN注释,其url属性设置为产品详细信息视图的路径.

我知道我可以通过使用获得当前路线的路径,this.$route.path但有没有办法获得一个不同的路径路径,因为它将呈现

<router-link :to={name: 'ProductDetail', params: {id: some_id, slug: some_slug}}></router-link>

在其他地方注入路线的路径?

tha*_*ksd 26

您正在寻找路由器实例的resolve方法:

给定与使用的形式相同的位置<router-link/>,返回具有以下已解析属性的对象:

{
  location: Location;
  route: Route;
  href: string;
}
Run Code Online (Sandbox Code Playgroud)

在你的情况下,你可以做这样的事情来获取网址:

let props = this.$router.resolve({ 
  name: 'ProductDetail',
  params: { id: some_id, slug: some_slug },
});

return props.href;
Run Code Online (Sandbox Code Playgroud)

  • @Mdunbavan 为什么需要注入它?您可以通过 `this.$route.name` 和 `this.$route.params` 访问当前路由的名称和参数。 (2认同)
  • @thanksd 因为那确实会返回这条路线的信息,但不会返回其他路线的信息,这是 OP(和我自己)想要的。不过,您的答案看起来会奏效。我正在尝试根据名称从不同的路线获取元数据,我认为这会奏效。如果你能做类似 `this.$router.ProductDetail...` 这样的事情会很酷,但我想这很明显为什么不起作用。 (2认同)