vue2.0中router-link詳解


vue2.0中router-link詳解:https://blog.csdn.net/lhjuejiang/article/details/81082090

 

在vue2.0中,原來的v-link指令已經被<router-link>組件替代了

<router-link>組件支持用戶在具有路由功能的應用中點擊導航。通過to屬性指定目標地址,默認渲染為帶有正確連接的<a>標簽,可以通過配置tag屬性生成別的標簽。另外,當目標路由成功激活時,鏈接元素自動設置一個表示激活的css類名

<router-link>組件的屬性有:

to 、replace、 append、  tag、  active-class、 exact 、 event、  exact-active-class

1、to(必選參數):類型string/location

表示目標路由的鏈接,該值可以是一個字符串,也可以是動態綁定的描述目標位置的對象

如下幾種示例

 

//下面是字符串的形式
<router-link to="home">Home</router-link>

//下面幾種為動態綁定,v-bind: 可以簡寫為:


<router-link :to="'index'">Home</router-link>

/*但注意這個組件的導出需要有類似下面的代碼
export default {
name: 'App',
data(){
return {
index:'/'
}
}
}
*/

<router-link :to="{ path: '/home' }">Home</router-link>
/*
這個路徑就是路由中配置的路徑
*/
<router-link :to="{ name: 'User'}">User</router-link>
/*
在路由的配置的時候,添加一個name屬性,例如:
routes: [
{
path:'/home',
name:'User',
component:home
}
]
*/


2、tag

類型: string

默認值: "a"

如果想要 <router-link> 渲染成某種標簽,例如 <li>。 於是我們使用 tag prop 類指定何種標簽,同樣它還是會監聽點擊,觸發導航。

<router-link :to="'index'"
tag="li"
event="mouseover">Home
</router-link>
如果此時我們想要在這個li標簽中添加a標簽,如下所示,可以不為a標簽添加href屬性即可哦

<router-link :to="{name:'Home'}" tag="li">
<a>Home</a>
</router-link>
在這種情況下,<a> 將作為真實的鏈接 (它會獲得正確的 href 的),而 "激活時的CSS類名" 則設置到外層的 <li>。

3、active-class

類型: string

默認值: "router-link-active"

設置 鏈接激活時使用的 CSS 類名。默認值可以通過路由的構造選項 linkActiveClass 來全局配置。

<router-link :to="{path:'/about'}"
active-class="activeClass"
>about</router-link>
默認值通過路由的構造選項 linkActiveClass 來全局配置,如下示例:

export default new Router({
mode:'history',
linkActiveClass:'is-active',
routes: [
{
path:'/about',
component:about
}
]
})
4、exact-active-class

類型: string

默認值: "router-link-exact-active"

配置當鏈接被精確匹配的時候應該激活的 class。注意默認值也是可以通過路由構造函數選項 linkExactActiveClass 進行全局配置的。

5、exact

類型: boolean

默認值: false

"是否激活" 默認類名的依據是 inclusive match (全包含匹配)。 舉個例子,如果當前的路徑是 /a 開頭的,那么 <router-link to="/a"> 也會被設置 CSS 類名。

按照這個規則,每個路由都會激活<router-link to="/">!想要鏈接使用 "exact 匹配模式",則使用 exact 屬性:

<li><router-link to="/">全局匹配</router-link></li>
<li><router-link to="/" exact>嚴格匹配</router-link></li>
簡單點說,第一個的話,如果地址是/aa,或/aa/bb,……都會匹配成功,

但加上exact,只有當地址是/時被匹配,其他都不會匹配成功

6、event
類型: string | Array<string>

默認值: 'click'

聲明可以用來觸發導航的事件。可以是一個字符串。

<router-link to="/document" event="mouseover">document</router-link>
如果我們不加event,那么默認情況下是當我們點擊document的時候,跳轉到相應的頁面,但當我們加上event的時候,就可以改變觸發導航的事件,比如鼠標移入事件

7、replace

類型: boolean

默認值: false

設置 replace 屬性的話,當點擊時,會調用 router.replace() 而不是 router.push(),於是導航后不會留下 history 記錄。

8、append

類型: boolean

默認值: false

設置 append 屬性后,則在當前 (相對) 路徑前添加基路徑

 

參考文章:vue router
---------------------
作者:冰雪為融
來源:CSDN
原文:https://blog.csdn.net/lhjuejiang/article/details/81082090
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM