> 웹 프론트엔드 > JS 튜토리얼 > React Router v6에서 다양한 레이아웃을 렌더링하는 방법은 무엇입니까?

React Router v6에서 다양한 레이아웃을 렌더링하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-12-25 13:43:09
원래의
697명이 탐색했습니다.

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 후크

또는 , 경로 구성 및 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿