URL 参数

URL 值

路由参数

路由参数是从动态片段中解析的值。

<Route path="/concerts/:city" element={<City />} />

在本例中,:city 是动态片段。该城市的解析值将可从 useParams 中获取。

import { useParams } from "react-router";

function City() {
  let { city } = useParams();
  let data = useFakeDataLibrary(`/api/v2/cities/${city}`);
  // ...
}

URL 搜索参数

搜索参数是 URL 中 ? 后面的值。可以通过 useSearchParams 访问它们,该函数返回 URLSearchParams 的一个实例。

function SearchResults() {
  let [searchParams] = useSearchParams();
  return (
    <div>
      <p>
        You searched for <i>{searchParams.get("q")}</i>
      </p>
      <FakeSearchResults />
    </div>
  );
}

位置对象

React Router 创建了一个自定义的 location 对象,其中包含一些有用的信息,可以通过 useLocation 访问。

function useAnalytics() {
  let location = useLocation();
  useEffect(() => {
    sendFakeAnalytics(location.pathname);
  }, [location]);
}

function useScrollRestoration() {
  let location = useLocation();
  useEffect(() => {
    fakeRestoreScroll(location.key);
  }, [location]);
}
文档和示例 CC 4.0