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

vue中$router和$route的區別

1.router是VueRouter的一個物件,通過Vue.use(VueRouter)和VueRouter建構函式得到一個router的例項物件,這個物件中是一個全域性的物件,他包含了所有的路由包含了許多關鍵的物件和屬性。

舉例:history物件

$router.push({path:'home'});本質是向history棧中新增一個路由,在我們看來是切換路由,但本質是在新增一個history記錄

方法:

$router.replace({path:'home'});//替換路由,沒有歷史記錄

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

我們可以從vue devtools中看到每個路由物件的不同

這兩個不同的結構可以看出兩者的區別,他們的一些屬性是不同的。

    • $route.path
      字串,等於當前路由物件的路徑,會被解析為絕對路徑,如"/home/news"
    • $route.params
      物件,包含路由中的動態片段和全匹配片段的鍵值對
    • $route.query
      物件,包含路由中查詢引數的鍵值對。例如,對於/home/news/detail/01?favorite=yes,會得到$route.query.favorite == 'yes'
    • $route.router
      路由規則所屬的路由器(以及其所屬的元件)。
    • $route.matched
      陣列,包含當前匹配的路徑中所包含的所有片段所對應的配置引數物件。
    • $route.name
      當前路徑的名字,如果沒有使用具名路徑,則名字為空。

$route.path, $route.params, $route.name, $route.query這幾個屬性很容易理解,看示例就能知道它們代表的含義