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
$route.router
路由規則所屬的路由器(以及其所屬的元件)。
$route.matched
陣列,包含當前匹配的路徑中所包含的所有片段所對應的配置引數物件。
$route.name
當前路徑的名字,如果沒有使用具名路徑,則名字為空。
$route.path, $route.params, $route.name, $route.query這幾個屬性很容易理解,主要用於接收路由傳遞的引數