Vue中給我們提供了三種路由傳參方式,下面我們一個(gè)一個(gè)的來看一下:
注意:
- 獲取參數(shù)的時(shí)候是route温圆,跳轉(zhuǎn)和傳參的時(shí)候是$router;
- 以下方法均不建議用來傳obj,若一定要傳侥猩,請(qǐng)先用JSON.stringify(obj)方法轉(zhuǎn)換;
方法一:params傳參:
//這個(gè)組件對(duì)應(yīng)的路由配置
{
//組件路徑
path: '/admin',
//組件別名
name: 'admin',
//組件名
component: Admin,
}
// 傳參
this.$router.push({
name:"admin",
//這里的params是一個(gè)對(duì)象莫杈,id是屬性名,item.id是值(可以從當(dāng)前組件或者Vue實(shí)例上直接取)
params:{id:item.id}
})
// 接收參數(shù)
this.$route.params.id
以上傳參方式基本上可以理解為ajax中的post請(qǐng)求方式挎挖,參數(shù)都是不可見的,但是該方法有一個(gè)弊端航夺,就是當(dāng)頁面刷新后參數(shù)值會(huì)丟失=抖洹!阳掐!
方法二:路由屬性配置傳參:
//這個(gè)組件對(duì)應(yīng)的路由配置
{
//組件路徑
path: '/admin/:id',
//組件別名
name: 'admin',
//組件名
component: Admin,
}
// 傳參
this.$router.push({
name:"admin",
params:{id:item.id}
})
// 接收
this.$route.params.id
方法三:query傳參
//這個(gè)組件對(duì)應(yīng)的路由配置
{
//組件路徑
path: '/admin',
//組件別名
name: 'admin',
//組件名
component: Admin,
}
// 傳參
this.$router.push({
name:"/admin",
query:{id:item.id}
})
// 接收
this.$route.query.id
以上兩種方式是可以解決頁面刷新參數(shù)消失問題的始衅,query這種方式可以理解為是ajax中的get方法,參數(shù)是直接在url后面添加的缭保,參數(shù)是可見的汛闸。