天天看點

vue中router與route

1.router

$router對象是全局路由的執行個體,是router構造方法的執行個體,主要是實作路由跳轉。

路由執行個體方法:

1、push

①字元串this.router.push(′home′)②對象this.router.push('home') ② 對象this.router.push(′home′)②對象this.router.push({path:‘home’})

③ 命名的路由this.router.push(name:′user′,params:userId:123)④帶查詢參數,變成/register?plan=123this.router.push({name:'user',params:{userId:123}}) ④帶查詢參數,變成 /register?plan=123this.router.push(name:′user′,params:userId:123)④帶查詢參數,變成/register?plan=123this.router.push({path:‘register’,query:{plan:‘123’}})

push方法其實和<router-link :to="…">是等同的。

注意:push方法的跳轉會向 history 棧添加一個新的記錄,當我們點選浏覽器的傳回按鈕時可以看到之前的頁面。

2、go

頁面路由跳轉

前進或者後退this.$router.go(-1) // 後退

3、replace

push方法會向 history 棧添加一個新的記錄,而replace方法是替換目前的頁面,

不會向 history 棧添加一個新的記錄.

// 一般使用replace來做404頁面

this.$router.replace(’/’)

配置路由時path有時候會加 ‘/’ 有時候不加,以’/'開頭的會被當作根路徑,就不會一直嵌套之前的路徑。

2.route

$route是一個跳轉的路由對象,route對象表示目前的路由資訊,包含了目前 URL 解析得到的資訊,每一個路由都會有一個route對象,是一個局部的對象,可以擷取對應的name,path,params,query等。

$route是不可變的,每次成功的導航後都會産生一個新的對象.

1.$route.path** 字元串,對應目前路由的路徑,總是解析為絕對路徑,如"/foo/bar"。

2.$route.params** 一個 key/value 對象,包含了 動态片段 和 全比對片段, 如果沒有路由參數,就是一個空對象。

3.$route.query** 一個 key/value 對象,表示 URL 查詢參數。。

4.$route.hash** 目前路由的hash值 (不帶#) ,如果沒有 hash 值,則為空字元串。錨點*

5.$route.fullPath** 完成解析後的 URL,包含查詢參數和hash的完整路徑。

6.$route.matched** 數組,包含目前比對的路徑中所包含的所有片段所對應的配置參數對象。

7.$route.name 目前路徑名字

8.$route.meta 路由元資訊