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传参的使用和区别(详尽)