react-router里的两种路由方式有什么不同

在React Router中,createBrowserRouter和createHashRouter的主要区别在于路由模式的选择:

兼容性差异

  • ‌**createBrowserRouter**‌(基于HTML5 History API)不兼容IE9及以下版本,但支持现代主流浏览器。 ‌
  • ‌**createHashRouter**‌(基于URL哈希值)兼容性更好,可适配更多浏览器,包括低版本IE。 ‌

地址栏表现形式

  • ‌**createBrowserRouter**‌的URL路径中不含#(如localhost:3000/demo/test)。 ‌
  • ‌**createHashRouter**‌的URL路径包含#(如localhost:3000/#/demo/test)。 ‌

刷新页面影响

  • ‌**createBrowserRouter**‌刷新页面后,路由状态(如参数)不受影响,因状态保存在浏览器历史记录中。 ‌
  • ‌**createHashRouter**‌刷新页面会导致路由状态丢失,需重新加载数据。 ‌

使用场景建议

  • ‌**createBrowserRouter**‌适用于需要优雅URL且兼容性要求不高的场景(如公网项目)。
  • ‌**createHashRouter**‌适用于兼容性优先的场景(如内网项目或老旧浏览器环境)。 ‌
相关推荐
陈随易1 小时前
Postman 被曝自动往 Claude Code 和 Codex 装插件
前端·后端·程序员
Csvn4 小时前
性能监控
前端
Csvn5 小时前
构建工具
前端
FRing035 小时前
vue2干货总结3(computed计算属性、watch监听器)
开发语言·前端·vue.js·vue2
JavaPub-rodert7 小时前
从零搭建通用管理后台:ShiyuAdmin 的 Go、React 与 RBAC 实践
开发语言·react.js·golang
kyriewen8 小时前
Skills 榜前 10 我全装了:只有 3 个能直接用
前端·javascript·程序员
IT_陈寒8 小时前
当Java的hashCode遇上Lombok,我的缓存被全清了
前端·人工智能·后端
工控丫丫8 小时前
帆软看板中经常使用的公式函数及经常搭的组合
前端·javascript·数据库
jerrywus9 小时前
我用 GPT-6.1-sol 做了台会讲解的 3D 售货机:60 罐饮料,一口没喝上
前端·agent·claude
孟陬10 小时前
Foobar 技术周刊#159:当看不懂代码时,如何高效排障调试。脏页陷阱:一条只读查询,写入数 TB 数据。推测解码:大模型加速利器
前端·人工智能·后端