<HashRouter>
declare function HashRouter(
props: HashRouterProps
): React.ReactElement;
interface HashRouterProps {
basename?: string;
children?: React.ReactNode;
future?: FutureConfig;
window?: Window;
}
<HashRouter>
用于在 Web 浏览器中使用,当 URL 不应该(或不能)出于某种原因发送到服务器时。这可能发生在某些共享托管场景中,您无法完全控制服务器。在这种情况下,<HashRouter>
使得将当前位置存储在当前 URL 的 hash
部分成为可能,因此它永远不会发送到服务器。
import * as React from "react";
import * as ReactDOM from "react-dom";
import { HashRouter } from "react-router-dom";
ReactDOM.render(
<HashRouter>
{/* The rest of your app goes here */}
</HashRouter>,
root
);
HashRouter
,除非您绝对必须使用它。
basename
配置您的应用程序以在 URL 中的特定基本名称下运行
function App() {
return (
<HashRouter basename="/app">
<Routes>
<Route path="/" /> {/* 👈 Renders at /#/app/ */}
</Routes>
</HashRouter>
);
}
future
一组可选的 未来标志 以启用。我们建议您尽早选择新发布的未来标志,以便更容易地迁移到 v7。
function App() {
return (
<HashRouter future={{ v7_startTransition: true }}>
<Routes>{/*...*/}</Routes>
</HashRouter>
);
}
window
HashRouter
默认使用当前 文档的 defaultView
,但它也可以用于跟踪另一个窗口的 URL 更改,例如在 <iframe>
中。