<router-link>
Props
to
类型:
string | Location
required
表示目标路由的链接。当被点击后,内部会立刻把
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
>
replace
类型:
boolean
默认值:
false
设置
replace
属性的话,当点击时,会调用router.replace()
而不是router.push()
,于是导航后不会留下 history 记录。<router-link :to="{ path: '/abc'}" replace></router-link>
append
类型:
boolean
默认值:
false
设置
append
属性后,则在当前 (相对) 路径前添加基路径。例如,我们从/a
导航到一个相对路径b
,如果没有配置append
,则路径为/b
,如果配了,则为/a/b
<router-link :to="{ path: 'relative/path'}" append></router-link>
tag
类型:
string
默认值:
"a"
有时候想要
<router-link>
渲染成某种标签,例如<li>
。 于是我们使用tag
prop 类指定何种标签,同样它还是会监听点击,触发导航。<router-link to="/foo" tag="li">foo</router-link>
<!-- 渲染结果 -->
<li>foo</li>
active-class
类型:
string
默认值:
"router-link-active"
设置链接激活时使用的 CSS 类名。默认值可以通过路由的构造选项
linkActiveClass
来全局配置。
exact
类型:
boolean
默认值:
false
“是否激活”默认类名的依据是包含匹配。 举个例子,如果当前的路径是
/a
开头的,那么<router-link to="/a">
也会被设置 CSS 类名。按照这个规则,每个路由都会激活
<router-link to="/">
!想要链接使用“精确匹配模式”,则使用exact
属性:<!-- 这个链接只会在地址为 / 的时候被激活 -->
<router-link to="/" exact></router-link>
查看更多关于激活链接类名的例子可运行
event
类型:
string | Array<string>
默认值:
'click'
声明可以用来触发导航的事件。可以是一个字符串或是一个包含字符串的数组。
exact-active-class
类型:
string
默认值:
"router-link-exact-active"
配置当链接被精确匹配的时候应该激活的 class。注意默认值也是可以通过路由构造函数选项
linkExactActiveClass
进行全局配置的。
aria-current-value
类型:
'page' | 'step' | 'location' | 'date' | 'time'
默认值:
"page"
当链接根据精确匹配规则激活时配置的
aria-current
的值。这个值应该是 ARIA 规范中允许的 aria-current 的值。在绝大多数场景下,默认值page
应该是最合适的。