1. 程式人生 > >params 和 query 傳參的區別

params 和 query 傳參的區別

的區別 頁面跳轉 數據 傳參 如果 要求 不存在 個人 path

很多人都知道params 和 query 都可以在頁面跳轉的時候傳遞參數。

query更加類似於我們ajax中get傳參,params則類似於post,說的再簡單一點,前者在瀏覽器地址欄中顯示參數,後者則不顯示

最近有一個需求,比如詳情頁,要求按F5刷新完後數據還是能正常展示,詳情頁是在created後用ID請求。

如果是用query 傳遞過來的id,在this.$route,上會一直存在。

但是如果用params的時候,如果不做別的配置,直接在路由跳轉的時間加params,F5刷新數據可能就不存在了。

如果一定要用params也可以,在router文件的 path 後面 + “/:id”,這樣頁面F5刷新後ID還是在router中。

如果是單獨的詳情頁這樣也是可以的,但是如果新增和編輯都是跳轉同一個路由呢,這樣就會報錯了,因為編輯要請求詳情,就需要ID,但是新增的時候是沒有ID的

這時候就需要 path 後面 + “/:id?”,也就是id後面加一個“?”,和正則的意思一樣,可有可無。這樣就不會報錯了。

個人還是建議用 query ,因為它不需要改變 path規則。

params 和 query 傳參的區別