添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

它使用URL的哈希部分(即 window.location.hash )来保持页面的UI与URL同步。

重要说明: 哈希历史记录不支持 location.key location.state 。在以前的版本中,我们试图填充行为,但是有一些我们无法解决的边缘情况。任何需要此行为的代码或插件都不起作用。由于此技术仅用于支持旧版浏览器,因此我们建议您将服务器配置为使用“ ”。

1
2
3
4
import { HashRouter } from 'react-router-dom'
<HashRouter>
<App/>
</ HashRouter>

basename:string

所有位置的基本URL。格式正确的基本名称应该有一个前导斜杠,但没有尾部斜杠。

1
2
<HashRouter basename =“/ calendar”/>
<Link to =“/ today”/> //<a href="#/calendar/today">

getUserConfirmation:func

用于确认导航的功能。默认使用[ window.confirm ]( https://developer.mozilla.org/en-US/docs/Web/API/Window/confirm)。

1
2
3
4
5
6
7
//这是默认行为
const getConfirmation =(message,callback)=> {
const allowTransition = window.confirm(message)
callback(allowTransition)
}

<HashRouter getUserConfirmation = {getConfirmation} />

hashType:string

用于 window.location.hash 的编码类型。可用值包括:

  • “slash” - Creates hashes like #/ and #/sunshine/lollipops
  • “noslash” - Creates hashes like # and #sunshine/lollipops
  • “hashbang” - Creates ajax crawlable (deprecated by Google) hashes like #!/ and #!/sunshine/lollipops
  • 默认为“slash”`。

    BrowserRouter

    使用HTML5历史API( pushState,replaceState和popstate事件),让页面的UI同步与URL

    1
    2
    3
    4
    5
    6
    7
    8
    9
    import  { BrowserRouter }  form 'react-router-dom';
    < BrowserRouter
    basename = { optionalString } //所有位置的基本UR
    forceRefresh = { optionalBool } //如果true路由器将在页面导航上使用整页刷新 通常用于不支持html5 history api的浏览器上
    getUserConfirmation = { optionalFunc }// 用户确认导航的功能回调函数
    keyLength = { optionalNumber } //location.key的长度 默认6
    >
    < App />
    </ BrowserRouter >

    以上是直接在官方api中可以直接查看到的说明,直接拿了过来,也可以去查看一些更好的博客介绍,比如 初探 React Router 4.0 ;那么接下来我们来总结一下在使用过程中这两者到底有什么不同。

    区别

    url上表现不一致