我知道有 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", 是出于其他什么考虑吗? 有什么缺点是我没有考虑到的? 还是说已经有了?