主分支
分支
main (6.23.1)dev
版本
6.23.1v4/5.xv3.x
HashRouter

<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> 中。

文档和示例 CC 4.0