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

<BrowserRouter>

类型声明
declare function BrowserRouter(
  props: BrowserRouterProps
): React.ReactElement;

interface BrowserRouterProps {
  basename?: string;
  children?: React.ReactNode;
  future?: FutureConfig;
  window?: Window;
}

<BrowserRouter> 使用干净的 URL 将当前位置存储在浏览器的地址栏中,并使用浏览器的内置历史记录堆栈进行导航。

import * as React from "react";
import { createRoot } from "react-dom/client";
import { BrowserRouter } from "react-router-dom";

const root = createRoot(document.getElementById("root"));

root.render(
  <BrowserRouter>
    {/* The rest of your app goes here */}
  </BrowserRouter>
);

basename

配置您的应用程序以在 URL 中的特定基本名称下运行

function App() {
  return (
    <BrowserRouter basename="/app">
      <Routes>
        <Route path="/" /> {/* 👈 Renders at /app/ */}
      </Routes>
    </BrowserRouter>
  );
}

future

一组可选的 未来标志 可供启用。我们建议您尽早选择新发布的未来标志,以便更容易地迁移到 v7。

function App() {
  return (
    <BrowserRouter future={{ v7_startTransition: true }}>
      <Routes>{/*...*/}</Routes>
    </BrowserRouter>
  );
}

window

BrowserRouter 默认使用当前 文档的 defaultView,但它也可以用于跟踪另一个窗口的 URL 更改,例如在 <iframe> 中。