params 和 query 传参的区别

Posted alvin553819

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了params 和 query 传参的区别相关的知识,希望对你有一定的参考价值。

很多人都知道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 传参的区别的主要内容,如果未能解决你的问题,请参考以下文章

vue中route和router的区别 ——params传参和query传参的区别

vue中route和router的区别 ——params传参和query传参的区别

Vue Router 的params和query传参的使用和区别(详尽)

vue-router传参的坑(query和params)

Vue Router路由中 的$route.params和$route.query传参的区别和使用示例

vue-router 路由动态传参 query和params的区别