使用 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>