1. 程式人生 > 其它 >從零開始學VUE之VueRouter(Router-link 詳解)

從零開始學VUE之VueRouter(Router-link 詳解)

Router-link 詳解

<router-link> 的屬性。

to

表示目標路由的連結。 當被點選後,內部會立刻把 to 的值傳到 router.push(),所以這個值可以是一個字串或者是描述目標位置的物件。

<!-- 字串 -->
<router-link to="home">Home</router-link>
<!-- 渲染結果 -->
<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>

<!-- 帶查詢引數,下面的結果為 /register?plan=private
--> <router-link :to="{ path: 'register', query: { plan: 'private' }}">Register</router-link>

replace

設定 replace 屬性的話,當點選時,會呼叫 router.replace() 而不是 router.push(),導航後不會留下 history 記錄。

<router-link :to="{ path: '/abc'}" replace></router-link>

append

設定 append 屬性後,則在當前 (相對) 路徑前新增其路徑。例如,我們從 /a 導航到一個相對路徑 b,如果沒有配置 append,則路徑為 /b,如果配了,則為 /a/b

<router-link :to="{ path: 'relative/path'}" append></router-link>

tag

有時候想要<router-link>渲染成某種標籤,例如<li>。 於是我們使用tagprop 類指定何種標籤,同樣它還是會監聽點選,觸發導航。

<router-link to="/foo" tag="li">foo</router-link>
<!-- 渲染結果 -->
<li>foo</li>

active-class

設定 連結啟用時使用的 CSS 類名。可以通過以下程式碼來替代。

<style>
   ._active{
      background-color : red;
   }
</style>
<p>
   <router-link v-bind:to = "{ path: '/route1'}" active-class = "_active">
     Router Link 1</router-link>
   <router-link v-bind:to = "{ path: '/route2'}" tag = "span">Router Link 2</router-link>
</p>

注意這裡class使用active-class="_active"

exact-active-class

配置當連結被精確匹配的時候應該啟用的 class。可以通過以下程式碼來替代。

<p>
   <router-link v-bind:to = "{ path: '/route1'}" exact-active-class = "_active">
     Router Link 1</router-link>
   <router-link v-bind:to = "{ path: '/route2'}" tag = "span">Router Link 2</router-link>
</p>

event

宣告可以用來觸發導航的事件。可以是一個字串或是一個包含字串的陣列。

<router-link v-bind:to = "{ path: '/route1'}" event = "mouseover">Router Link 1</router-link>

以上程式碼設定了 event 為 mouseover ,及在滑鼠移動到 Router Link 1 上時導航的 HTML 內容會發生改變。

class的名稱可以在index.js中統一修改

在新版中名字改為了這樣的

this.$router

通過this.$router.push/replace跳轉路由 在方法中呼叫

一般常用replace,寫一個別都寫

作者:彼岸舞

時間:2021\06\28

內容關於:VUE

本文屬於作者原創,未經允許,禁止轉發