Vue使用params方式傳引數據丟失

2021-10-04 23:35:15 字數 913 閱讀 6068

在vue的元件之間傳遞資料時,因為不想url上面有?xx=yy的內容出現,所以選擇params形式傳遞引數,正常跳轉,好看又方便

問題出現了:突然在重新整理跳轉之後的頁面的時候,頁面的資料載入不出來了,仔細一看,原來是路由中攜帶的引數不見了!! 元件重新整理還能導致路由的引數丟失。

query傳遞引數

query傳遞引數不會出現路引數丟失的情況,所以不需要做其他的配置,不過缺點就是引數會拼接在url後面: url?xx=yy 這種方式來傳遞引數,會暴露引數,並且url也有字元上限限制

使用方式:

this.$router.push(})

獲取引數:

this.$route.query.id獲取key為id的路由引數

params傳遞引數

params傳遞引數是將引數放在route物件中,沒有放在url後面,但是會有乙個問題,在跳轉之後的頁面中重新整理的時候,會導致當前路由中儲存的params的引數丟失

使用方式:

this.$router.push(})

獲取引數:

this.$route.params.id獲取route物件中的params的引數資訊

使用params傳遞引數,引數沒有像query那樣,拼接在url後面,所以重新整理的時候會出現資料丟失,則無法獲取到資料

有兩種方式可以解決:

使用sessionstorage、localstorage

使用params中的路由匹配

VUE路由傳參之params傳參和query傳參

下列觀點只代表個人觀點,如有不足之處,煩請指正!今天在頁面間使用 router.push傳參時,發現頁面重新整理資料之後,路由中params的資料丟失了。1.繼續使用params傳參 繼續使用params傳參,需要在對應路由中新增引數,用來儲存 不知道這麼說對不對 params中對應的引數。如圖 模...

vue 路由傳參 params 與 query

router檔案下index.js裡面,是這麼定義路由的 我想用params來傳參,是這麼寫的,嗯 this.router.push 結果可想而知,接收引數的時候 this.route.params.code undefined這是因為,params只能用name來引入路由,下面是正確的寫法 thi...

vue路由傳參 params和query

query傳參 路由 routes 傳參 通過path引入 this router.push 通過name引入 this router.push 接收 com和hhhhome元件中 console.log this route.query params傳參 只能用name引入,不能用path 路由 ...