主體
分支
主體 (6.23.1)開發
版本
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> 用於網址出於某種原因不適合(或無法)傳送至伺服器的網路瀏覽器中。這可能會發生在一些您對伺服器沒有完全控管權的共用主機場景中。在這些情況下,<HashRouter> 可以將目前位置儲存在目前網址的 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

配置您的應用程式在網址中的特定基本名稱下執行

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 預設使用目前的 文件預設檢視,但也可以用於追蹤其他視窗網址的變更,例如在 <iframe> 中。