<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>
);
}
windowHashRouter 默认使用当前 文档的 defaultView,但它也可以用于跟踪另一个窗口的 URL 更改,例如在 <iframe> 中。