
React Router v6 を使用した異なるレイアウト/要素を持つコンポーネントのレンダリング
React Router v6 では、異なるレイアウトや要素を持つコンポーネントのレンダリングを実現できますネストされたルートまたは useRoutes によるルート構成を使用するフック。
ネストされたルート
をレンダリングするには<サイドバー>ログイン ルートを除くすべてのルート上のコンポーネントを作成するには、それらをレンダリングするレイアウト コンポーネントと、ネストされたルートのアウトレットを作成します。 、ルート設定と useRoutes フックを使用して、ルート:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | 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>
</>
);
};
|
ログイン後にコピー
ルート設定とデータ ルーター (v6.4.0 のみ)
React Router v6.4.0 以降、データ ルーターを使用して定義することもできます。あなたのルート:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 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;
};
|
ログイン後にコピー
以上がReact Router v6 でさまざまなレイアウトをレンダリングするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。