首頁 >web前端 >js教程 >如何在 React Router v6 中渲染不同的佈局?

如何在 React Router v6 中渲染不同的佈局?

Susan Sarandon
Susan Sarandon原創
2024-12-25 13:43:09691瀏覽

How to Render Different Layouts in React Router v6?

使用React Router v6 渲染不同版面/元素的元件

在React Router v6 中,可以實現渲染不同版面或元素的元件使用嵌套路由或使用useRoutes進行路由配置

嵌套路由

渲染和除了登入路由之外的所有路由上的元件,建立一個渲染它們的佈局元件和嵌套路由的出口。

const AppLayout = () => (
  <>
    <NavBar />
    <SideBar />
    <main className={styles["main--container"]}>
      <div className={styles["main--content"]}>
        <Outlet />
      </div>
    </main>
  </>
);

const App = () => {
  return (
    <>
      <Routes>
        <Route path="/login" element={<LoginPage />} />
        <Route element={<AppLayout />}>
          <Route path="/" element={<Dashboard />} />
        </Route>
      </Routes>
    </>
  );
};

路由配置和useRoutes Hook

或者,使用路由配置和useRoutes 掛鉤來定義您的路由:

const routesConfig = [
  {
    path: "/login",
    element: <LoginPage />,
  },
  {
    element: <AppLayout />,
    children: [
      {
        path: "/",
        element: <Dashboard />,
      },
    ],
  },
];

import { useRoutes } from 'react-router-dom';

const App = () => {
  const routes = useRoutes(routesConfig);

  return routes;
};

路由設定和資料路由器(僅限v6.4.0)

從 React Router v6.4.0 開始,您也可以使用資料路由器來定義您的路線:

const routesConfig = [
  {
    path: "/login",
    element: <LoginPage />,
  },
  {
    element: <AppLayout />,
    children: [
      {
        path: "/",
        element: <Dashboard />,
      },
    ],
  },
];

import { createBrowserRouter, RouterProvider } from 'react-router-dom';

const router = createBrowserRouter(routesConfig);

const App = () => {
  return <RouterProvider router={router} />;
};

以上是如何在 React Router v6 中渲染不同的佈局?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn