vuejs / router

🚦 The official router for Vue.js
https://router.vuejs.org/
MIT License
3.77k stars 1.16k forks source link

Navigation with route obj keeps previous params #2299

Closed oswaldofreitas closed 2 weeks ago

oswaldofreitas commented 2 weeks ago

Reproduction

https://play.vuejs.org/#eNqdVstu20YU/ZVrZiEKkUm/kgUrq25dA0nhOIZbtCjKLMbkSGI8nCFmhpIMR8vu+gntz/VLeufBh2XJDrIQKN7Hua8zd/gQlKTg0WcVJEFRVkJqeIBMUqLpD1UFa5hKUcJgUdNByr2BFLWm0mui2L12auPX6EhVRc435S1qiL9hygGiWtHQubv3UtRch4NX6DYYBqPAu2NuY03LiqH/xBiOK/vAP0pLwWeT81pKyn1qUBE9T8ax18HDg5NH05qxa9TBem1RYgcz5mTR4N3YbC4LfgdanKZBnAaTd6Kk47jT7LStpMjrTCv0ufZ/IfxdyDs1fME/sQAPwElJExh4b7gslB7A+hHeT4IqPtCwRNyXYF1alLeZxRmRiHZO5BPPcdy0YfyeY+vQvBBcQexkhiaPI/xW0GWjjb16HPfmhK8qk0WlQVFdm163DMPBW5A+wfY3ifQojYZRfWFHLXxphn/agodIKmSBTWGCbHL4W7n+gZZC3r/DduNj5IWuzO0ptklekxltkzMv25JSmNWfplHthA2nBiPHVBjECSN89j0KMoGwHKmcWGQUzAuWI7cTB4AQ7gFbuTJqlB64mXun2AgAa6/ZAbsTMU4Uq2c7cUdQUk2SDnZO1CXWmABOjzrh2gf/ZB6fNlomsWX9MYQWae4mlGwbWzi0aK7h+HeN40+5H/otnQpJL0g2D0MtRnZiI+B0pYdwiivCeJrogtGIiVk46BxwKlpEFZGkVMPvDCZAMYVwr5VGZnrw5YuxM2VHvthhU75E/ktuw4UGAmt3OK5gTpfuNJwiQaIo0gLWPlBOGUVFY9EP6C0sqHVrjEYYD89ghmM0zYa1Cem6QVeWtDmdkpo1ncaj0RD36aadH03a/WmogbtzHKPQKrdsy2YjVJJ2ji5r62rkX78nugCjF3bG1y4BB71fkgoXgeBYsJ1R6hW4u1vSpkEXwYjTYK51pZI4rnl1N4uQ8nFncXYSHUVv4hzJ2JNGVJX7t1Isld08aeAPTBqcoVGc04UWgql9UhW7QjwxPHsbvY0OY1bcxogeFzynK4vtibXGMrXCdkyL2UaR5pQWjMqPlV2gj4oljInlz1ZmaNMmms1pdrdF/lmtXMrXkmJ1C9orThM5o9qpL365Qor2lCVuEIbWzyhvKJ7E2uTozH6seY5p9+xstu/tzAo++1VdrDTlqimqWTJuwdhBnj9TepfucXTS66LS94yqKFPmysDrEbca3nPO71bInMoEjqoVYLJFDq8ODg7s4S4RruD7t0JrUSZweFCtrLwieY7JthK7BBAWJkDgNf4ssPdmdIq7tLHEZDZvvi1n9XjSN8JzeuwVJ5OOkmCJisoTpxSsuddZMTlnRYaHeU6xK/iVgOeZ4eEbI9m2Gk0LiWfOUKD58tlm/4eoB4zh6abWqflo699c3dfaAj8rdsbrJwVkhsPYML0SS8isueDW44jn0H48bcntv3/+gqsio3twL2rICP+WNMexb+KTTh9HB693tXqOS9yF6rksqDQsxn1qvAHZ1s/FER4+kKrLRJPbjZpuaIW3IyhNK//hdGjw3gDBZtjjbEH9fQd432025d+/4aOo1B7Gnxa8wI3KhMCYj+t9dou3Szflwfp/DBsugg==

Steps to reproduce the bug

vue-router 4.2.5

  1. Click the "Car" link
  2. Click the first "Products" link
  3. You'll see the Product List view
  4. Click the "Car" link again
  5. Now click on the 2nd Products link
  6. ✅ Nice! you can see the Product List view

vue-router 4.3.0+

  1. Change the vue-router version to 4.3 in the Import Map tab
  2. Repeat steps from 1 to 5 and check the console log
  3. ❌ Oops! infinite loop

Expected behavior

When navigating with a raw obj like :to="{ name: 'Product List' }" should have the same result as to="/products" string

Actual behavior

It's entering in an infinite loop

Additional information

I've put a console log in router.js > beforeEach() so that you can check that the lang param isn't being removed in the newer version of vue-router