关于路由使用params还是query

params query
…/pay/bankCard …/pay?by=bankCard
…/pay/wechat …/pay?by=wechat

本质区别: params 写入路由表,query 不写入路由表

那么引申的区别:

params 可以比较快捷的在路由表里面为不同的 params 配置不同的页面文件
query 也可以做到上述效果,但是由于路由表不记录 query,所以根据 query 配置不同页面的逻辑转移到页面上(例如 if 判断)

query 在客户端的 webview 中可以直接取值,而 params 对于客户端的 webview 来说,已经在 url 中,客户端无法知道哪一段才是 params,要取得 params,只能截取固定位置的片段来得到。
params 如果有多个变量,那么需要定义多次,…link/%${paramA}/link/%${paramB}, query 如果有多个变量,则只需…link?A=someValue&B=someOtherValue


注意:
不要将动态的 params 和指定的 params 混合使用。 例如…add/:id 和…/add/card,如果这样使用,card 可能也会被当成是一个 id,导致页面逻辑出错。

关于路由使用params还是query

https://lynan.cn/router-params-query/

作者

Lynan

发布于

2019-04-30

许可协议