React:BrowserRouter与HashRouterde的区别

398 阅读1分钟
  1. 底层原理不一样:
  • BrowserRouter使用的是H5的history API,不兼容IE9及以下版本;
  • HashRouter使用的是URL的哈希值,#后的所有内容都不会发送给服务器。兼容性好一点。
  1. path表现形式不一样
  • BrowserRouter的路径中没有#,例如:localhost:3000/demo/test
  • HashRouter的路径包含#,例如:localhost:3000/#/demo/test
  1. 刷新后对路由state参数的影响
  • BrowserRouter没有任何影响,因为state保存在history对象中
  • HashRouter刷新后会导致路由state参数的丢失
  1. HashRouter可以用于解决一些路径错误相关的问题

备注:实际开发过程中,BrowserRouter用的更多。