上节课我们介绍了关于withRouter的用法,这节课我们来比较一下BrowserRouterHashRouter

回顾

在开始这节课之前我们对上节课来做一个简单的回顾。

  • withRouter是一个使一般组件可以具备路由组件的API的函数
  • withRouter接收一个组件并返回一个与之前组件同名的新组件

以上便是上节课的主要要点,接下来,我们开始这节课的内容

BrowserRouterHashRouter的区别

  1. 底层原理不同
  2. BrowserRouter用的是H5history API,不兼容IE9及以下版本
  3. HashRouter用得是URL hash
  4. url表现形式不同
  5. BrowserRouter中没有#
  6. HashRouter中有#为分隔,#后面的都是hash
  7. 刷新后state参数影响不同
  8. BrowserRouter刷新后没有任何影响,因为state存在history
  9. HashRouter刷新后就会丢失state参数
  10. HashRouter可以用于解决一些路径错误相关的问题

总结

  • BrowserRouterHashRouter的底层原理不同
  • BrowserRouterHashRouterurl表现形式不同
  • BrowserRouterHashRouter刷新后state参数影响不同
  • HashRouter可以用于解决一些路径错误相关的问题

Copyright statement:The articles of this site are all original if there is no special explanation, indicate the source please when you reprint.

Link of this article:https://work.lynchow.com/article/browser_hash_router/