我知道有 BrowserRouter, 路由信息直接放在路径中, 缺点是需要后端配合;
还有 HashRouter, 路由信息放在 hash 中, 缺点是, 如果想要获取 searchParams 等参数, 需要使用 react-router-dom 导出的方法(如 useLocation 等), 或者自己写函数来解析 window.location
那为什么没有 "QueryRouter", 把路由信息放到 search 参数中, 形如 ?__router__=/index
, 这样的好处是, 想要获取 searchParams 等参数, 只需要使用
const url = new URL(window.location)
const { hash, searchParams } = url
其他各种参数都能用原生的方法来获取或设置
那么没有 "QueryRouter", 是出于其他什么考虑吗? 有什么缺点是我没有考虑到的? 还是说已经有了?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.