通常,我们使用react-router-dom
库以便导航到每个页面。
用法通常如下,与创建的内容相同create-react-app
.
history.js
file
import * as history from 'history';
export default history.createBrowserHistory();
index.js
file
import {Router} from 'react-router-dom';
import history from '../history';
<Router history={history}></Router>
但我不明白为什么history
是必要的Router
。
有谁可以帮助我理解吗?
Router
是其他路由器(例如 BrowserRouter 和 HashRouter 等)的低级接口。因此,如果您正在使用Router
,您必须提供history
对象,因为它没有自己的。
但是,如果您不想提供自己的历史对象,您可以使用BrowserRouter
。它有自己的history
object.
See 浏览器路由器 and Router.
来自文档:
Router:所有路由器组件的通用低级接口。通常,应用程序将使用高级路由器之一:<BrowserRouter>
, <HashRouter>
, <MemoryRouter>
, <NativeRouter>
or <StaticRouter>
以下是导入这些内容的方法:
import { Router } from "react-router-dom"
import { BrowserRouter } from "react-router-dom"
我们还可以使用一个alias导入浏览器路由器:
import { BrowserRouter as Router } from "react-router-dom"
// Now Router is still a BrowserRouter
// Probably this causes the confusion
一个常见的原因或benefit使用低电平Router
与你自己的history
就是这样,你可以导入并使用history
在任何 JS 文件中(不仅在 React 组件中)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)