上节课我们介绍了关于withRouter
的用法,这节课我们来比较一下BrowserRouter
与HashRouter
。
回顾
在开始这节课之前我们对上节课来做一个简单的回顾。
withRouter
是一个使一般组件可以具备路由组件的API
的函数withRouter
接收一个组件并返回一个与之前组件同名的新组件
以上便是上节课的主要要点,接下来,我们开始这节课的内容
BrowserRouter
与HashRouter
的区别
- 底层原理不同
BrowserRouter
用的是H5
的history API
,不兼容IE9
及以下版本HashRouter
用得是URL hash
值url
表现形式不同BrowserRouter
中没有#
HashRouter
中有#
为分隔,#
后面的都是hash
值- 刷新后
state
参数影响不同 BrowserRouter
刷新后没有任何影响,因为state
存在history
中HashRouter
刷新后就会丢失state
参数HashRouter
可以用于解决一些路径错误相关的问题
总结
BrowserRouter
与HashRouter
的底层原理不同BrowserRouter
与HashRouter
的url
表现形式不同BrowserRouter
与HashRouter
刷新后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/