當你使用params方法傳參的時候,要在路由後面加引數名,並且傳參的時候,引數名要跟路由後面設定的引數名對應。使用query方法,就沒有這種限制,直接在跳轉裡面用就可以。
注意:如果路由上面不寫引數,也是可以傳過去的,但不會在url上面顯示出你的引數,並且當你跳到別的頁面或者重新整理頁面的時候引數會丟失(如下圖所示),那依賴這個引數的http請求或者其他操作就會失敗。
params傳參和query傳參有什麼區別:
(1)、用法上的
剛query要用path來引入,params要用name來引入,接收引數都是類似的,分別是this.rou
te.q
uery
.nam
e和th
is
.route.query.name和this.
route.
quer
y.na
me和t
his.
route.params.name。
注意接收引數的時候,已經是rou
te而不
是route而不是
route而
不是router了哦!!
(2)、展示上的
query更加類似於我們ajax中get傳參,params則類似於post,說的再簡單一點,前者在瀏覽器位址列中顯示引數,後者則不顯示
query:
params:
(3)、params是路由的一部分,必須要有。query是拼接在url後面的引數,沒有也沒關係。
params一旦設定在路由,params就是路由的一部分,如果這個路由有params傳參,但是在跳轉的時候沒有傳這個引數,會導致跳轉失敗或者頁面會沒有內容。
比如:跳轉/router1/:id
正確錯誤
params傳參和query傳參
params傳參 this.router.push query傳參 this.router.push 1 用法上的 query要用path來引入,params要用name來引入,接收引數都是類似的,分別是this.route.query.name和this.route.params.name。注意接...
vue路由傳參 params和query
query傳參 路由 routes 傳參 通過path引入 this router.push 通過name引入 this router.push 接收 com和hhhhome元件中 console.log this route.query params傳參 只能用name引入,不能用path 路由 ...
vue路由傳參params和query的用法和區別
1.params 帶過去id 通過this.router.push 由於動態路由也是傳遞params的,所以在 this.router.push 方法中 path不能和params一起使用,否則params將無效。需要用name來指定頁面。及通過路由配置的name屬性訪問 在路由配置檔案中定義引數 ...