分兩種情況
一盲再、跳轉(zhuǎn)后頁面的地址為 “/b”
{
path: '/b',
name: 'b',
component: B
},
從a頁面跳轉(zhuǎn),有兩種方法
(1)通過path
this.$router.push({
path:'/b',
query:{
id: 12
}
})
此時佑女,B頁面上的router信息是這樣子的
通過query可以獲取到這個對象
地址欄的地址是
http://localhost:8080/#/b?id=12
(2)通過路由name
this.$router.push({
name:'b',
params:{
id: 12
}
})
這個時候B頁面的信息是這樣的
通過params可以拿到信息
地址欄的地址是
http://localhost:8080/#/b
但是值得注意的是刷新頁面之后烟馅,params里面會變成空對象
(3)window.open
window.open('#/b?id=12')
通過query取參刘绣,刷新頁面不會丟失
總結(jié):
//name 和params搭配使用 刷新之后那邊獲取值會獲取不到
//path 和query搭配使用 fullPath:/b?id=12
二、跳轉(zhuǎn)后地址是 ’/aboutA/111'
{
path: '/aboutA/:id',
name: 'aboutA',
component: AboutA
},
(1)直接通過path
this.$router.push({
path:'/aboutA/111'
})
頁面信息顯示為
可通過params獲取信息
(2)通過params
this.$router.push({
name: 'aboutA',
params:{
id: 123
}
})
頁面顯示同(1)獲取信息方法也相同
(3)通過query
this.$router.push({
path: '/aboutA',
query:{
id: 12312
}
})
// 這個出來地址是/aboutA?id=12312不會有對應頁面出現(xiàn)
(4)直接用window.open
window.open('#/aboutA/123')
這個方法出現(xiàn)的效果也是一樣的
注
path和query結(jié)合使用紫谷,取參也用query
name和params結(jié)合使用齐饮,取參也用params
對于目標地址路徑的不同捐寥,使用也有所區(qū)別,window.open方法簡單些祖驱,刷新頁面丟失以及和跳轉(zhuǎn)參數(shù)和目標地址設(shè)置無法對應握恳,導致顯示不出來,這幾個需要稍微注意點捺僻。
$route部分對象的解釋
1乡洼,$route.path
類型: string
字符串,對應當前路由的路徑陵像,總是解析為絕對路徑就珠。
2,$route.params
類型: Object
一個 key/value 對象醒颖,包含了動態(tài)片段和全匹配片段妻怎,如果沒有路由參數(shù),就是一個空對象泞歉。
3逼侦,$route.query
類型: Object
一個 key/value 對象,表示 URL 查詢參數(shù)腰耙。則有 $route.query
4榛丢,$route.hash
類型: string
當前路由的 hash 值 (帶 #) ,如果沒有 hash 值挺庞,則為空字符串晰赞。
5,$route.fullPath
類型: string
完成解析后的 URL选侨,包含查詢參數(shù)和 hash 的完整路徑掖鱼。p