Vue Router踩的坑,链接参数拼接报错的解决方法

使用 Vue Router 的 <router-link> 拼接链接(URL)参数时报错,页面无法正常解析出来。

错误示范:

<router-link :to="/Detail?type=" + item.type + "&status=" + item.status >
  ...
</router-link>

正确写法:

<router-link :to="{path: 'Detail', query: { type: item.type , status: item.status}}">
  ...
</router-link>

下面是一些 to 的常用写法:

类型: string | Location

表示目标路由的链接。当被点击后,内部会立刻把 to 的值传到 router.push(),所以这个值可以是一个字符串或者是描述目标位置的对象。

<!-- 字符串 -->
<router-link to="home">Home</router-link>
<!-- 渲染结果 -->
<a href="home">Home</a>

<!-- 使用 v-bind 的 JS 表达式 -->
<router-link v-bind:to="'home'">Home</router-link>

<!-- 不写 v-bind 也可以,就像绑定别的属性一样 -->
<router-link :to="'home'">Home</router-link>

<!-- 同上 -->
<router-link :to="{ path: 'home' }">Home</router-link>

<!-- 命名的路由 -->
<router-link :to="{ name: 'user', params: { userId: 123 }}">User</router-link>

<!-- 带查询参数,下面的结果为 /register?plan=private -->
<router-link :to="{ path: 'register', query: { plan: 'private' }}">Register</router-link>


赞 (0)
分享到: +

评论 沙发

Avatar

换个身份

  • 昵称 (必填)
  • 邮箱 (选填)