vue路由傳參的三種方式以及解決vue路由傳參頁面刷新參數(shù)丟失問題

最近項(xiàng)目中涉及到跨頁面?zhèn)鲄?shù)和后臺進(jìn)行數(shù)據(jù)交互,看到需求之后第一反應(yīng)就是用路由傳參來解決;Vue中給我們提供了三種路由傳參方式,下面我們一個(gè)一個(gè)的來看一下:

方法一:params傳參:

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

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

通過params傳遞參數(shù),如果我們想獲取id的 參數(shù)值,我們可以通過this.$route.params.id這種方式來打印出來就可以得到了;(注意:獲取參數(shù)的時(shí)候是$route,跳轉(zhuǎn)和傳參的時(shí)候是$router)

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

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

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

通過路由屬性配置傳參我們可以用this.$route.params.id來獲取到id的值,注意this.$router.push方法里面路徑帶的是值,路由配置項(xiàng)那里帶的是變量名(屬性名)來實(shí)現(xiàn)的對應(yīng);

以上兩種傳參方式基本上可以理解為ajax中的post請求方式,參數(shù)都是不可見的,但是上面兩種方法都有一個(gè)弊端,就是當(dāng)頁面刷新了是獲取不到參數(shù)值的,那么有沒有一種方法是頁面刷新之后參數(shù)依然存在呢?

方法三:query傳參

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

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

第三種方式是用query來傳參,這種方式是可以解決頁面刷新參數(shù)消失問題的,這種方式可以理解為是ajax中的get方法,參數(shù)是直接在url后面添加的,參數(shù)是可見的,所以解決頁面刷新參數(shù)消失問題建議使用方法三來解決;

其實(shí)解決頁面刷新參數(shù)丟失問題的方案還有很多,比如把參數(shù)存在sessionStorange或者localStorange中都是可行的,不過我們既然用vue框架,就要用vue的方式來解決問題。這里只是想告訴大家,問題的解決方案可以多種多樣,要學(xué)會用多種方式或者說多種方案來解決一個(gè)問題,不要有太多的局限性!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • SPA單頁應(yīng)用 傳統(tǒng)的項(xiàng)目大多使用多頁面結(jié)構(gòu),需要切換內(nèi)容的時(shí)候我們往往會進(jìn)行單個(gè)html文件的跳轉(zhuǎn),這個(gè)時(shí)候受網(wǎng)...
    視覺派Pie閱讀 11,896評論 1 55
  • 路由基礎(chǔ)知識 router和route的區(qū)別 route,是一個(gè)路由。 routes,是一組路由。 router,...
    lesdom閱讀 1,651評論 5 13
  • 目錄 - 1.vue-router響應(yīng) 路由參數(shù) 的變化 - 2.vue-router如何定義嵌套路由? - 3....
    我跟你蔣閱讀 5,655評論 0 14
  • 端午,早起登高,到魁星樓隧道上方 天旱,艾也長得矮瘦,必須節(jié)水節(jié)水節(jié)水!!! 忙碌的 端午節(jié),為每年農(nóng)歷五月初五。...
    蘇心2017閱讀 241評論 0 0
  • 往事一幕幕重演,現(xiàn)在的你,還會犯以前一樣的錯誤,還會做傻事嗎?你還有半年的時(shí)間彌補(bǔ)自己的過失,你需要靜下心來去思考...
    燒火_丫頭閱讀 129評論 0 0