連結

使用 BootstrapVue 自訂的 b-link 元件產生標準的 <a> 連結或 <router-link><b-link> 支援 disabled 狀態和 click 事件傳遞。

<b-link> 是提供連結功能的大部分 BootstrapVue 元件的建構模組。

<div>
  <b-link href="#foo">Link</b-link>
</div>

<!-- b-link.vue -->

href 屬性中指定一個值,會呈現一個標準的連結 (<a>) 元素。若要產生 <router-link>,請透過 to 屬性指定路由位置。

路由器連結支援各種額外的屬性。有關詳細資訊,請參閱 路由器支援 參考部分。

如果你的應用程式在 Nuxt.js 下執行,<nuxt-link> 元件將用於取代 <router-link><nuxt-link> 元件支援與 <router-link> 相同的所有功能(因為它是一個針對 <router-link> 的封裝元件),甚至更多。

BootstrapVue 自動偵測使用 <router-link><nuxt-link> 連結元件。有些第三方框架也提供 <router-link> 的自訂版本,例如 Gridsome 的 <g-link> 元件。可透過使用 router-component-name 屬性,讓 <b-link> 支援這些第三方、與 <router-link> 相容的元件。所有 vue-router 屬性(不含特定於 <nuxt-link> 的屬性)都會傳遞給指定的路由連結元件。

請注意,只會在設定 to 屬性時才使用第三方元件。

一般來說,如果按一下 <a href="#">,文件會捲動到頁面頂端。當 href 設定為 # 時,<b-link> 會透過防止預設動作(捲動到頂端)來處理這個問題。

如果您需要捲動到頂端的行為,請使用標準的 <a href="#">...</a> 標籤。

disabled 屬性設定為 true,即可停用連結功能。

<div>
  <b-link href="#foo" disabled>Disabled Link</b-link>
</div>

<!-- b-link-disabled.vue -->

停用連結會在連結上設定 Bootstrap v4 .disabled 類別,以及處理停止事件傳遞、阻止預設動作發生、並從文件標籤順序(tabindex="-1")中移除連結。

注意:目前對於停用的連結,Bootstrap v4 CSS 的樣式與未停用的連結沒有不同。您可以使用下列自訂 CSS 為停用的連結設定樣式(藉由防止滑鼠移動時的樣式變更)

a.disabled {
  pointer-events: none;
}

並非所有瀏覽器都支援 pointer-events: none;

元件參考

所有屬性的預設值都可透過 設定值 全域設定。

屬性
(按一下根據字母順序排列)
類型
(按一下根據字母順序排列)
預設值
說明
active
布林值false設定為 `true` 時,會讓元件處於「啟用狀態」並套用啟用狀態的樣式
active-class
字串<router-link> 屬性:設定連結啟用時套用的 CSS 啟用類別。一般來說,您會想將它設定為類別名稱「active」
append
布林值false<router-link> 屬性:設定 append 屬性會始終將相對路徑附加到目前的「path」
disabled
布林值false設定為 `true` 時,會停用元件的功能並改成停用狀態
event
陣列字串<router-link> 屬性:指定觸發連結的事件。大多數情況下,您都應該保持預設值
exact
布林值false<router-link> 屬性:預設使用包含匹配方式的 active class。設定此屬性可強制使用完全匹配模式
exact-active-class
字串<router-link> 屬性:在使用完全匹配時,設定連結 active 的 CSS class。一般來說,你會想將它設定為類別名稱「active」
exact-path
布林值false<router-link> 屬性:只允許使用 URL 的路徑部分進行匹配,實際上會忽略查詢和 hash 部分
exact-path-active-class
字串<router-link> 屬性:在使用完全路徑匹配時,設定連結 active 的 CSS class。一般來說,你會想將它設定為類別名稱「active」
href
字串用於表示標準 a href 的連結目標 URL
no-prefetch
布林值false<nuxt-link> 屬性:為了提升你的 Nuxt.js 應用程式的回應性,當連結出現在視窗中時,Nuxt.js 會自動預先擷取通過程式碼切割的頁面。設定「no-prefetch」會針對特定連結停用此功能
prefetch
v2.15.0+
布林值null<nuxt-link> 屬性:為了提升你的 Nuxt.js 應用程式的回應性,當連結出現在視窗中時,Nuxt.js 會自動預先擷取通過程式碼切割的頁面。將「prefetch」設定為「true」或「false」會覆寫「router.prefetchLinks」的預設值
rel
字串null設定已呈現連結的「rel」屬性
replace
布林值false<router-link> 屬性:設定「replace」屬性時,按一下會呼叫「router.replace()」,而不是「router.push()」,因此導覽不會留下歷史記錄
router-component-name
v2.15.0+
字串<b-link> 屬性:BootstrapVue 會自動偵測「<router-link>」和「<nuxt-link>」。在你想使用第三方連結元件基於「<router-link>」時,請將此屬性設定為元件名稱。例如,如果你使用 Gridsome,請將它設定為「g-link」(請注意,只有「<router-link>」特定屬性會傳遞給元件)
router-tag
字串<router-link> 屬性:指定標籤來呈現,它仍會監聽用於導覽的按一下事件。「router-tag」會轉換成最終呈現的「<router-link>」上的標籤屬性。你通常應該使用預設值
target
字串'_self'設定已呈現連結的「target」屬性
to
物件字串<router-link> 屬性:表示連結的目標路由。按一下時,to 屬性的值會傳遞到內部的「router.push()」,因此該值可以是字串或位置描述符物件

<b-link> 支援產生 <router-link><nuxt-link> 元件(如果是使用 Nuxt.js)。有關路由連結(或 nuxt 連結)特定屬性的更多詳細資訊,請參閱 路由支援 參考部分。

名稱
說明
預設 放置在連結中的內容
事件
參數
說明
bv::link::clicked
  1. 原生按一下事件
在「$root」上連結按一下時觸發
click
  1. 原生按一下事件
連結按一下時觸發

匯入個別元件

你可以透過下列命名匯出,匯入個別元件到你的專案中

元件
命名匯出
匯入路徑
<b-link>BLinkbootstrap-vue

範例

import { BLink } from 'bootstrap-vue'
Vue.component('b-link', BLink)

匯入為 Vue.js 外掛

此外掛程式包含上面列出的所有個別元件. 外掛程式還包括任何元件別名。

命名匯出
匯入路徑
LinkPluginbootstrap-vue

範例

import { LinkPlugin } from 'bootstrap-vue'
Vue.use(LinkPlugin)