Skip to content

获取参数 和 路由状态

获取参数

通过路由参数获取

警告

格式如下: xxx/:id

获取参数通过 useParams

  • 新建一个路由
jsx
{
  path: "/page2/:id",
  element: <Page2></Page2>
},
  • 在组件中获取参数
js
import { useParams } from "react-router-dom";
function Page2() {
  const Params = useParams();
  console.log("*****");
  console.log(Params.id);
  console.log("*******");
}

第二种通过参数来获取

警告

格式如下: xxx?id=xxx

获取参数通过 URL

  • 获取参数
jsx
// 这样就能获取到了
const location = useLocation();
console.log(location);
const searchParams = new URLSearchParams(location.search);
const paramsObject = Object.fromEntries(searchParams.entries());
console.log(paramsObject);

路由状态

  • 一般写在根组件中,作为判断 loading 是否完成的依据

警告

  • 通过 useNavigation 来获取路由状态
  • 判断是 状态是 loading 还是其他的,状态是 loading 就加载 loading 的类
jsx
export default function Root() {
  // 路由信息对象
  const navigation = useNavigation(); // 路由信息对象
  return (
    <div id="detail" className={navigation.sate == "loading" ? "loading" : ""}>
      <Outlet />
    </div>
  );
}