問題:在最近的項目中,我通過傳遞不同的參數,復用同一組件進行渲染,然而意外出現一個bug,就是當我重新刷新該頁面時,會新增一個tab
原來的:
刷新頁面后:
查閱資料后,發現該現象是由於通過params進行傳遞的參數引起的,params進行傳參后再次刷新頁面,參數丟失,導致fullpath不一致,從而新增了頁面(而我使用的d2admin基於element-ui第三方框架)
解決方案:將params方式傳參改為使用query傳參,這樣參數就不會因為刷新而丟失
參考:
https://juejin.im/post/5c139fed6fb9a049ab0d80dc
query和params傳參的區別?
- query 傳參配置的是path,而params傳參配置的是name,在params中配置path無效
- query在路由配置不需要設置參數,而params必須設置
- query傳遞的參數會顯示在地址欄中
- params傳參刷新會無效,但是query會保存傳遞過來的值,刷新不變 ;
如果路由上面不寫參數,也是可以傳過去的,但不會在url上面顯示出你的參數,並且當你跳到別的頁面或者刷新頁面的時候參數會丟失,那依賴這個參數的http請求或者其他操作就會失敗