通用路由器链接属性
在下面的部分中,我们将使用<b-link>
组件来呈现路由器链接。
<b-link>
是大多数BootstrapVue可操作组件的构建块。您可以使用支持链接生成的任何其他组件,
如<b-link>
,
<b-button>
,
<b-breadcrumb-item>
,
<b-list-group-item>
,
<b-nav-item>
,
<b-dropdown-item>
,和
<b-pagination-nav>
。请注意,
并非所有组件上都有可用的属性。有关详细信息,请参阅相应的组件文档。
to
- 类型:
string | Location
- 需要生成一个
<router-link>
表示链接的目标路由。单击时,to
属性的值将在内部传递给router.push()
,因此该值可以是字符串或位置描述符对象。
<div>
<!-- Literal string -->
<b-link to="home">Home</b-link>
<!-- Renders to -->
<a href="home">Home</a>
<!-- JavaScript expression using `v-bind` -->
<b-link v-bind:to="'home'">Home</b-link>
<!-- Omitting `v-bind` is fine, just as binding any other prop -->
<b-link :to="'home'">Home</b-link>
<!-- Same as above -->
<b-link :to="{ path: 'home' }">Home</b-link>
<!-- Named route -->
<b-link :to="{ name: 'user', params: { userId: 123 } }">User</b-link>
<!-- With query, resulting in `/register?plan=private` -->
<b-link :to="{ path: 'register', query: { plan: 'private' } }">Register</b-link>
<!-- Render a non-router link by omitting `to` and specifying an `href` -->
<b-link href="/home">Home</b-link>
</div>
replace
- 类型:
boolean
- 默认值:
false
设置replace
属性将在单击时调用router.replace()
而不是
router.push()
,因此导航不会留下历史记录。
<div>
<b-link :to="{ path: '/abc'}" replace></b-link>
</div>
append
- 类型:
boolean
- 默认值:
false
设置append
属性总是将相对路径附加到当前路径。例如,假设我们从/a
导航到一个相对链接b
,
没有append
,我们将在/b
结束,但是有append
,
我们将在/a/b
结束。
<div>
<b-link :to="{ path: 'relative/path'}" append></b-link>
</div>
router 标签
- 类型:
string
- 默认值:
'a'
有时我们希望<router-link>
呈现为另一个标签,例如<li>
。
然后,我们可以使用router-tag
属性指定要渲染到的标签,它仍将监听单击事件以进行导航。
router-tag
转换为最终呈现的<router-link>
上的标签
属性。
<div>
<b-link to="/foo" router-tag="li">foo</b-link>
<!-- Renders as -->
<li>foo</li>
</div>
注意:
不建议从<a>
之外的其他任何地方更改标签,因为这会妨碍键盘和/或屏幕阅读器用户的可访问性,并且也不是非常适合SEO。
active 类
- 类型:
string
- 默认值:
'router-link-active'
(使用Nuxt.js时为'nuxt-link-active'
)
配置链接处于active状态时应用的activeCSS类。注意,默认值也可以通过linkActiveClass
路由器构造函数选项进行全局配置。
对于支持路由器链接(有to
属性)的组件,
您需要将其设置为类'active'
(或包含'active'
的空格分隔字符串),以便在当前路由与to prop匹配时在组件上应用Bootstrap的active样式。
exact
- 类型:
boolean
- 默认值:
false
默认的活动类匹配行为是inclusive match。例如,<b-link to="/a">
将应用该类,
只要当前路径以/a/
或is /a
开头。
这样的结果是,<b-link to="/">
将对每条路线都有效! 要将链接强制为“完全匹配模式”,
请使用exact
的属性:
<div>
<!-- This link will only be active at `/` -->
<b-link to="/" exact></b-link>
</div>
查看更多解释active链接类live的示例。
exact-active 类
- 类型:
string
- 默认值:
'router-link-exact-active'
(使用Nuxt.js时'nuxt-link-exact-active'
) - 可用性: Vue Router 2.5.0+
配置具有完全匹配的活动链接时应用的活动CSS类。 注意,默认值也可以通过linkExactActiveClass
路由器构造函数选项进行全局配置。
对于支持路由器链接(有to
属性)的组件,
您需要将其设置为类'active'
(或包含'active'
的空格分隔字符串),
以便在当前路由与to
属性匹配时在组件上应用Bootstrap的active样式。
Nuxt.js特定的路由器链接属性
当BootstrapVue检测到您的应用程序正在Nuxt.js下运行时,
它将呈现一个<nuxt-link>
子组件,
而不是一个<router-link>
。
<nuxt-link>
支持上述所有路由器链接属性,以及以下特定于nuxt.js的附加属性。
no-prefetch
- 类型:
boolean
- 默认值:
false
- 可用性: Nuxt.js 2.4.0+
为了提高Nuxt.js应用程序的响应能力,当链接显示在视区内时,Nuxt.js将自动prefetch代码分割的页面。不设置no-prefetch
将禁用特定链接的此功能。
注意:
如果您在 nuxt.config.js
配置中禁用了prefetch
(router: { prefetchLinks: false}
),
或者正在使用nuxt.js< 2.4.0
的版本,则此属性将无效。
Prefetch支持要求支持IntersectionObserver
(请参阅CanIUse)。
对于不支持IntersectionObserver的浏览器,可以在nuxt.config.js
中使用以下条件polyfill:
export default {
head: {
script: [
{
src: 'https://polyfill.io/v3/polyfill.min.js?features=es2015%2CIntersectionObserver',
body: true
}
]
}
}