我使用react-router-dom
的<Route />
进行路由,Nav
+LinkContainer
从react-bootstrap
+react-router-bootstrap
进行导航:
//...
<Route path="/shop/" component={Shop} />
//...
<NavItem caption="Home" path="/" />
<NavItem caption="Shop" path="/shop" />
//...
// with a helper component:
const NavItem = (props) => {
return (
<LinkContainer to={props.path} >
<Nav.Link> {props.caption} </Nav.Link>
</LinkContainer>
)
}
这会创建一个带有散列符号的URL,例如:
http://localhost:3000/#/shop
这是从哪里来的,它有什么好处?一切正常,但我觉得这个哈希符号不太聪明。我能避免吗?
可以使用
BrowserRouter
不是
HashRouter
防止在URL上显示#。
import {
BrowserRouter as Router,
...
}
instead of
import {
HashRouter as Router,
...
}