1. 程式人生 > 其它 >query 和 params 傳參

query 和 params 傳參

技術標籤:my_jsjavascriptvue.jsreactjs

query傳參
第一種

this.$router.push({ path: '/discomfortBook', query: {a:1, b:2, c:3 }})

url為
在這裡插入圖片描述

控制檯列印:
在這裡插入圖片描述
第二種

this.$router.push({path:'/discomfortBook', query: {obj: {a:1, b:2, c:3 }}})

url 為
在這裡插入圖片描述
在這裡插入圖片描述
推薦方式二,如果屬性比較多的時候,第一種傳參會把query裡面的欄位全部都暴露在url位址列中,url會比較長,還有可能會導致url超出chrome規定url最長位元組長度(2m)

params傳參

this.$router.push({name: 'discomfortBook', params: { obj: {a: 1, b:2, c: 3}}})

url 為
在這裡插入圖片描述
控制檯:
在這裡插入圖片描述
重新整理頁面後,obj的值會成這樣
在這裡插入圖片描述
解決: JSON.stringify() 和 JSON.parse()轉一下

this.$router.push({name: 'discomfortBook', params: { obj: JSON.stringify({a:1, b:2, c:3}) }})

JSON.parse(this.$route.params.obj)