React+Redux

리액트 레이아웃 적용하기

디비드킴 2023. 1. 21. 14:14

https://sosohanya.tistory.com/116

 

[React] Layout / Contents 컴포넌트 분리

Lnb, Top 영역은 컴포넌트로 빼더라도, 모든 페이지마다 전체 화면을 감싸는 영역과 Lnb, Top 영역을 반복해서 작성하는 건 불편합니다. 페이지에서는 해당페이지의 내용(Contents)만 작성하고 싶습니

sosohanya.tistory.com

위글 처럼 하면된다

 

layout.js

import {Outlet} from "react-router-dom";
import HeaderCompo from "./HeaderCompo";

function LayoutCompo() {

    return (
        <div>
            <HeaderCompo/>
            <Outlet/>
        </div>
    )
}
export default LayoutCompo;

app.js

import { Route, BrowserRouter as Router, Routes } from "react-router-dom";
import LayoutCompo from "./component/layout/LayoutCompo";
import Main from "./pages/Main";
import PlusProductPage from "./pages/PlusProductPage";
import PlusTimePage from "./pages/PlusTimePage";
import ReservationDetailPage from "./pages/ReservationDetailPage";
import ReservationPage from "./pages/ReservationPage";
import ReservationProPage from "./pages/ReservationProPage";

function App() {
  return (

    <Router>
      <Routes>
        <Route path={"/"} element={<LayoutCompo />} >
          <Route path="seat/:floor/floor" element={<ReservationPage />}></Route>
          <Route path="pro/:seatId" element={<ReservationProPage />}></Route>
          <Route path=":reservationId/ReservationDetailPage" element={<ReservationDetailPage />}></Route>
          <Route path="" element={<Main />}></Route>
          <Route path="product/:reservationId/plus" element={<PlusProductPage />}></Route>
          <Route path="time/:reservationId/plus" element={<PlusTimePage />}></Route>
        </Route>
      </Routes>
    </Router>
  );
}

export default App;

제일 상위 라우트에 레이아웃컴포넌트를 주면된다

<Route path={"/"} element={<LayoutCompo />} > 

'React+Redux' 카테고리의 다른 글

리액트 env 사용하기  (0) 2023.01.21
리액트 자식 컴포넌트 함수 호출하기  (0) 2023.01.18
React +Redux + ReduxTookit 툴킷이 답이다  (0) 2022.09.06