在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上面,所以就没有长度限制了。
相关阅读
关于 HTTP GET/POST 请求参数长度最大值的一个理解误区 - 简书
以上是 在Vue2项目中,什么情况需要使用params参数? 的全部内容, 来源链接: utcz.com/p/932947.html