1. 程式人生 > 其它 >vue中router與route的區別

vue中router與route的區別

router
router是VueRouter的一個物件,通過Vue.use(VueRouter)和VueRouter建構函式得到一個router的例項物件,這個物件中是一個全域性的物件,他包含了所有的路由包含了許多關鍵的物件和屬性。
在這裡插入圖片描述
路由例項方法:

1、push
1.字串this.$router.push(‘home’)

2. 物件this.$router.push({path:'home'})

3. 命名的路由this.$router.push({name:'user',params:{userId:123}})

4.帶查詢引數,變成 /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 棧新增一個新的記錄

4.一般使用replace來做404頁面
this.$router.replace(’/’)

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

$router物件是全域性路由的例項,是router構造方法的例項。

route
route是一個跳轉的路由物件,每一個路由都會有一個route物件,是一個區域性的物件,可以獲取對應的name,path,params,query等

在這裡插入圖片描述

$route.path
字串,等於當前路由物件的路徑,會被解析為絕對路徑,如 “/home/news” 。

$route.params
物件,包含路由中的動態片段和全匹配片段的鍵值對

r o u t e . q u e r y 對 象 , 包 含 路 由 中 查 詢 參 數 的 鍵 值 對 。 例 如 , 對 於 / h o m e / n e w s / d e t a i l / 01 ? f a v o r i t e = y e s , 會 得 到 route.query 物件,包含路由中查詢引數的鍵值對。例如,對於 /home/news/detail/01?favorite=yes ,會得到 rout

e.query/home/news/detail/01?favorite=yesroute.query.favorite == ‘yes’ 。

$route.router
路由規則所屬的路由器(以及其所屬的元件)。

$route.matched
陣列,包含當前匹配的路徑中所包含的所有片段所對應的配置引數物件。

$route.name
當前路徑的名字,如果沒有使用具名路徑,則名字為空。

$route.path, $route.params, $route.name, $route.query這幾個屬性很容易理解,主要用於接收路由傳遞的引數