在Vue2项目中,什么情况需要使用params参数?
问题描述:
这个问题我用中英文都搜了一遍,并没有得到满意的答案query参数似乎是万能的?那么为什么还要增加一个params参数?
期待回答的内容是什么?
Vue2项目中使用params参数和query的情景
我的推测:
在接口带参数时必须使用params,其他情况下使用params或query都可以

不清楚你说的 params
和 query
指的是 接口传参 还是 路由带参。
如果是接口传参的话。一是为了区分请求,一般来说 get
、post
、put
和 delete
请求各有各的含义。get
和 delete
请求多半会使用 query
传参,post
和 put
使用 params
传参比较多。另外一个就是 query
传参会受到长度和类型限制。比如会遇到 414 Request-URI Too Large
这样的异常抛出,或者接收时因为URL过长导致参数缺失。同时也没办法传递文件类型的参数(比如说文件上传功能)而使用 params
传递参数的话,就不会收到这样的类型限制。以及对于参数的长度限制也会宽容的多,理论上是无限制的,但是一般默认为2M
,相对于 query
的 2k~8k
也大太多太多了。
如果是路由带参的话,一般来说 params
是为了实现类似 RESTful
的URL形式。比如说思否问题链接的 /q/1010000042548488/edit
, q
表示 question
,后面的数字 1010000042548488
标识问题ID,edit
表示编辑功能。传递的参数也可以设置为不显示,比如说传递 token
这种敏感信息(但是刷新后会丢失参数。所以 vue-router@4x
增加 params
传参的校验,不是具名的 params
参数使用将会抛出异常)。而 query
的话就是属于比较传统了,比如说 /question?id=1010000042548488
以及 /question/edit?id=1010000042548488
这样的形式。刷新后参数也不会丢失,只是如果你传递的参数比较多,你的URL就会比较混乱。例如:/post?type=exp&page=1&pageSize=20&token=f9bf78b9a18ce6d46a0cd2b0b86df9da
。而使用 params
传递则会规则很多,例如 /post/exp/1
。同样使用query
传递参数长度也会有所限制。 params
传递参数的话,因为可以不附加在URL上面,所以就没有长度限制了。
相关阅读

- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容