vue中router-link的詳細用法


官網文檔地址:https://router.vuejs.org/zh/api/#to

今天項目突然有需求,讓vue中的一個頁面跳轉到另一個頁面

// 字符串 <router-link to="apple"> to apple</router-link> // 對象 <router-link :to="{path:'apple'}"> to apple</router-link> // 命名路由 <router-link :to="{name: 'applename'}"> to apple</router-link> //直接路由帶查詢參數query,地址欄變成 /apple?color=red <router-link :to="{path: 'apple', query: {color: 'red' }}"> to apple</router-link> // 命名路由帶查詢參數query,地址欄變成/apple?color=red <router-link :to="{name: 'applename', query: {color: 'red' }}"> to apple</router-link> //直接路由帶路由參數params,params 不生效,如果提供了 path,params 會被忽略 <router-link :to="{path: 'apple', params: { color: 'red' }}"> to apple</router-link> // 命名路由帶路由參數params,地址欄是/apple/red <router-link :to="{name: 'applename', params: { color: 'red' }}"> to apple</router-link>

router-link標簽會自動渲染成a標簽,

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

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

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

2、tag:類型: string    默認值: "a" 

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

<router-link :to="{name:'schedule',query:{aa:'dsd'}}" tag="li" >跳轉</router-link>

如果此時我們想要在這個li標簽中添加a標簽,如下所示,可以不為a標簽添加href屬性即可哦

<router-link :to="{name:'schedule',query:{aa:'dsd'}}" tag="li" > <a>跳轉</a> </router-link>

在這種情況下,<a> 將作為真實的鏈接 (它會獲得正確的 href 的),而 "激活時的CSS類名" 則設置到外層的 <li>。

 

3、active-class   類型: string    默認值: "router-link-active"

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

<router-link :to="{name:'schedule',query:{aa:'dsd'}}" tag="a" active-class="red" > 跳轉 </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

按照這個規則,每個路由都會激活<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 屬性后,則在當前 (相對) 路徑前添加基路徑

 

9、另外,加上target屬性為"_blank",依然可以打開一個新的頁面

 

<router-link :to="{name:'schedule',query:{aa:'dsd'}}" tag="a" append target="_blank" > 跳轉 </router-link>

 


免責聲明!

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



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