vue路由傳參及解決vue路由傳參頁面刷新參數(shù)丟失問題

Vue中給我們提供了三種路由傳參方式,下面我們一個(gè)一個(gè)的來看一下:
注意:

  • 獲取參數(shù)的時(shí)候是route,跳轉(zhuǎn)和傳參的時(shí)候是$router;
  • 以下方法均不建議用來傳obj,若一定要傳,請先用JSON.stringify(obj)方法轉(zhuǎn)換;

方法一:params傳參:

//這個(gè)組件對應(yīng)的路由配置
{
  //組件路徑
    path: '/admin',
  //組件別名
    name: 'admin',
  //組件名
    component: Admin,
}

// 傳參
this.$router.push({
        name:"admin",
    //這里的params是一個(gè)對象,id是屬性名,item.id是值(可以從當(dāng)前組件或者Vue實(shí)例上直接取)
        params:{id:item.id}
})   

// 接收參數(shù)    
this.$route.params.id

以上傳參方式基本上可以理解為ajax中的post請求方式,參數(shù)都是不可見的,但是該方法有一個(gè)弊端,就是當(dāng)頁面刷新后參數(shù)值會丟失?。。?/em>

方法二:路由屬性配置傳參:

//這個(gè)組件對應(yīng)的路由配置
{
  //組件路徑
    path: '/admin/:id',
  //組件別名
    name: 'admin',
  //組件名
    component: Admin,
}

// 傳參
this.$router.push({
        name:"admin",
        params:{id:item.id}
})       

// 接收
this.$route.params.id

方法三:query傳參

//這個(gè)組件對應(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ù)是可見的。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容