vue2.0中router-link詳解
<router-link>
組件支持用戶在具有路由功能的應用中點擊導航。通過to屬性指定目標地址,默認渲染爲帶有正確連接的<a>
標籤,可以通過配置tag屬性生成別的標籤。另外,當目標路由成功激活時,鏈接元素自動設置一個表示激活的css類名.
<router-link>
組件的屬性有:to 、replace、 append、 tag、 active-class、 exact 、 event、 exact-active-class
- 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
}
]
*/
- tag 類型: string 默認值: “a” 。 如果想要
<router-link>
渲染成某種標籤,例如<li>
。 於是我們使用 tag prop 類指定何種標籤,同樣它還是會監聽點擊,觸發導航。
<router-link :to="'index'"
tag="li"
event="mouseover">Home
</router-link>
- 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
}
]
})
- exact-active-class 類型: string ,默認值: “router-link-exact-active” 配置當鏈接被精確匹配的時候應該激活的 class。注意默認值也是可以通過路由構造函數選項 linkExactActiveClass 進行全局配置的。
- exact 類型: boolean , 默認值: false “是否激活” 默認類名的依據是 inclusive match (全包含匹配)。 舉個例子,如果當前的路徑是 /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 屬性後,則在當前 (相對) 路徑前添加基路徑