前端路由中为什么 params 参数刷新会丢失,而 query 就不会?

我想问的其实不是解决 params 参数会丢失的问题,而是想问为什么它就会丢失?而 query 就不会丢失呢?

阅读 3.8k
4 个回答

当页面刷新时,前端路由需要重新解析 URL 并重新渲染页面。但是,当使用 params 传递参数时,这些参数会被编码在 URL 路径中,而刷新页面会导致浏览器重新发送请求,此时 URL 路径中的参数将会丢失。

相反,当使用 query 传递参数时,这些参数会被编码在 URL 的查询字符串中。当页面刷新时,前端路由可以从浏览器地址栏中解析出查询字符串,并将其用于重新渲染页面。因此,刷新页面不会导致 query 参数丢失。

直白的来说:query相当于get请求,而params相当于post请求

params存在内存里,通过url到内存里取值,
query存在url上,在url上解析就能拿到
你刷新页面,内存里的东西会没掉,
但是url上的还在

query 类似 Get 请求,直接写到地址栏
params 类似 Post 请求,仅仅在代码内容存储

params参数是通过URL路径传递的,而query参数是通过URL查询字符串传递的。当页面刷新时,URL路径会被重新加载,但查询字符串不会。因此params参数会丢失,而query参数不会丢失。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题