4 javascript history reactjs react-router-dom
通常,我们使用react-router-dom库来导航到每个页面。用法通常如下,与创建的内容相同create-react-app。
history.js文件
import * as history from 'history';
export default history.createBrowserHistory();
Run Code Online (Sandbox Code Playgroud)
index.js文件
import {Router} from 'react-router-dom';
import history from '../history';
<Router history={history}></Router>
Run Code Online (Sandbox Code Playgroud)
但我不明白为什么history需要Router. 有谁可以帮助我理解吗?
Router是其他路由器(例如 BrowserRouter 和 HashRouter 等)的低级接口。因此,如果您使用Router,则必须提供history对象,因为它没有自己的对象。
但是,如果您不想提供自己的历史对象,则可以使用BrowserRouter. 它有自己的history对象。
请参阅BrowserRouter和Router。
来自文档:
路由器:所有路由器组件的公共低级接口。通常,应用程序将使用高级路由器之一:
<BrowserRouter>、<HashRouter>、<MemoryRouter>或<NativeRouter><StaticRouter>
以下是导入这些内容的方法:
import { Router } from "react-router-dom"
import { BrowserRouter } from "react-router-dom"
Run Code Online (Sandbox Code Playgroud)
我们还可以使用别名来导入 BrowserRouter:
import { BrowserRouter as Router } from "react-router-dom"
// Now Router is still a BrowserRouter
// Probably this causes the confusion
Run Code Online (Sandbox Code Playgroud)
使用低级别的一个常见原因或好处是,通过这种方式,您可以Router在任何 JS 文件中导入和使用(不仅仅是在 React 组件中)。historyhistory
| 归档时间: |
|
| 查看次数: |
1088 次 |
| 最近记录: |