<router-link>
<router-link> 組件支持用戶在具有路由功能的應(yīng)用中(點擊)導(dǎo)航。 通過 to 屬性指定目標地址瘦癌,默認渲染成帶有正確鏈接的 <a>
標簽哈街,可以通過配置 tag 屬性生成別的標簽.铸本。另外描融,當目標路由成功激活時镇匀,鏈接元素自動設(shè)置一個表示激活的 CSS 類名瓣俯。
<router-link> 比起寫死的 <a href="..."> 會好一些闰非,理由如下:
無論是 HTML5 history 模式還是 hash 模式剩盒,它的表現(xiàn)行為一致呆瞻,所以台夺,當你要切換路由模式,或者在 IE9 降級使用 hash 模式痴脾,無須作任何變動颤介。
在 HTML5 history 模式下,router-link 會攔截點擊事件明郭,讓瀏覽器不在重新加載頁面买窟。
當你在 HTML5 history 模式下使用 base 選項之后,所有的 to 屬性都不需要寫(基路徑)了薯定。
Props
to
類型: string | Location
required
表示目標路由的鏈接始绍。當被點擊后,內(nèi)部會立刻把 to 的值傳到 router.push()话侄,所以這個值可以是一個字符串或者是描述目標位置的對象亏推。
<!-- 字符串 -->
<router-link to="home">Home</router-link>
<!-- 渲染結(jié)果 -->
<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>
<!-- 帶查詢參數(shù),下面的結(jié)果為 /register?plan=private -->
<router-link :to="{ path: 'register', query: { plan: 'private' }}">Register</router-link>
replace
類型: boolean
默認值: false
設(shè)置 replace 屬性的話吞杭,當點擊時盏浇,會調(diào)用 router.replace() 而不是 router.push(),于是導(dǎo)航后不會留下 history 記錄芽狗。<router-link :to="{ path: '/abc'}" replace></router-link>
append
類型: boolean
默認值: false
設(shè)置 append 屬性后绢掰,則在當前(相對)路徑前添加基路徑。例如童擎,我們從 /a 導(dǎo)航到一個相對路徑 b滴劲,如果沒有配置 append,則路徑為 /b顾复,如果配了班挖,則為 /a/b
<router-link :to="{ path: 'relative/path'}" append></router-link>
tag
類型: string
默認值: "a"
有時候想要 <router-link> 渲染成某種標簽,例如<li>
芯砸。 于是我們使用 tag prop 類指定何種標簽萧芙,同樣它還是會監(jiān)聽點擊,觸發(fā)導(dǎo)航假丧。
<router-link to="/foo" tag="li">foo</router-link>
<!-- 渲染結(jié)果 -->
<li>foo</li>
active-class
類型: string
默認值: "router-link-active"
設(shè)置 鏈接激活時使用的 CSS 類名双揪。默認值可以通過路由的構(gòu)造選項 linkActiveClass 來全局配置。
exact
類型: boolean
默認值: false
"是否激活" 默認類名的依據(jù)是 inclusive match (全包含匹配)虎谢。 舉個例子盟榴,如果當前的路徑是 /a 開頭的,那么 <router-link to="/a"> 也會被設(shè)置 CSS 類名婴噩。
按照這個規(guī)則,<router-link to="/"> 將會點亮各個路由羽德!想要鏈接使用 "exact 匹配模式"几莽,則使用 exact 屬性:
<!-- 這個鏈接只會在地址為 / 的時候被激活 -->
<router-link to="/" exact>
查看更多關(guān)于激活鏈接類名的例子 可運行.
將"激活時的CSS類名"應(yīng)用在外層元素
有時候我們要讓 "激活時的CSS類名" 應(yīng)用在外層元素,而不是<a>
標簽本身宅静,那么可以用 <router-link> 渲染外層元素章蚣,包裹著內(nèi)層的原生<a>
標簽:
<router-link tag="li" to="/foo">
<a>/foo</a>
</router-link>
在這種情況下,<a>
將作為真實的鏈接(它會獲得正確的 href 的)姨夹,而 "激活時的CSS類名" 則設(shè)置到外層的<li>
纤垂。