单页应用使用 URL 传递参数,哪种是标准方式呢

2021-12-27 14:05:50 +08:00
 zqx

第一种: /user/1/detail
第二种: /user/detail?id=1
React ,Vue 的路由库都提供了方法,支持从 url path 里传参,类似于第一种方式,路由声明可能是 /user/:id/detail ,由各家的路由库解析为一个对象。
但是浏览器也提供了 URL 对象,searchParams 方法支持解析?后面的参数字符串为一个对象。
应该用哪种呢?我一直用的第二种。

1384 次点击
所在节点    问与答
8 条回复
Pastsong
2021-12-27 14:08:42 +08:00
用 1 比较 restful
libook
2021-12-27 14:27:46 +08:00
没有所谓标准方式,你用 Body 和 Header 传也是可以的,关键是前后端能够约定一个当前项目的 API 标准。
TomatoYuyuko
2021-12-27 14:33:29 +08:00
确实是看约定,和后端约定好了怎么用都行,个人习惯是用户 id 一类的用第一种,纯业务参数类的用第二种,可以组合
cloverstd
2021-12-27 14:59:37 +08:00
别人说的是前端路由
waiaan
2021-12-27 15:02:35 +08:00
没有标准,反正都是前端解析,你自己爱怎么来怎么来。
aaniao002
2021-12-27 15:04:32 +08:00
建议用 index.html#/user/detail ? id=1 ,老浏览器前端读取 uel 有问题。不考虑的话无所谓。
aaniao002
2021-12-27 15:04:48 +08:00
url
zqx
2021-12-29 09:17:32 +08:00
最近实践发现,路由参数风格没办法动态传参,也就是说要传的参数字段必须提前定义好,一旦参数传错位置,就会导致路由错误,甚至打不开页面。
使用?search 风格,可以传任意参数,传了多余的参数,接收方也不用管,可扩展性更强一些。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/824681

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX