溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue.js this.$router.push獲取不到params參數問題

發布時間:2020-09-03 09:01:07 來源:腳本之家 閱讀:2739 作者:crazyPupil 欄目:web開發

主要通過兩種方式傳參

1.query方式傳參和接受參數

this.$router.push({
 path:'/xxx'
 query:{
  idname:id
  }
})

接收的方式:this.$route.query.id

2.params方式傳遞參數

this.$router.push({
 name:'路徑名稱'
 query:{
  idname:id
  }
})

接收的方式:this.$route.params.id

代碼

this.$router.push({
 path: '/container',
 params: {
  url: this.func.url,
 },
 });

在跳轉后的頁面中console.log(this.route)發現params是空的

問題原因:用法錯誤,以下為正確用法

this.$router.push({
 name: 'container',
 params: {
  url: this.func.url,
 },
 });

要使跳轉后的頁面this.$route.params有參數,必須使用name:'container',而不是path:'/container',還需要注意name中沒有/

this.$router.push({
 name: 'container',
 params: {
  url: this.func.url,
 },
 });

參數獲取this.$route.params.url

this.$router.push({
 path: '/container',
 query: {
  url: this.func.url,
 },
 });

這種方式會在跳轉的地址上拼接上?url=xxxx
獲取方式this.$route.query.url

導致這樣的原因是因為params需要通過name來獲取,這里就要明白query和params的區別了

  • query要用path來引入,接收參數都是this.$route.query.name。query類似于ajax中get傳參,即在瀏覽器地址欄中顯示參數。
  • params要用name來引入,接收參數都是this.$route.params.name。params則類似于post,即在瀏覽器地址欄中不顯示參數。

注意區別兩種方式,切勿path和name同時出現

到此這篇關于vue.js this.$router.push獲取不到params參數問題的文章就介紹到這了,更多相關this.$router.push獲取參數內容請搜索億速云以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持億速云!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女