하얀 코딩

[React - 11] Outlet 본문

React

[React - 11] Outlet

whitecoding 2023. 8. 24. 00:29

<Outlet /> 컴포넌트는 React Router v6에서 도입된 기능입니다. 

이 컴포넌트는 중첩 라우팅 (nested routing)에서 부모 라우트 내에서 

자식 라우트 컴포넌트가 어디에 렌더링될지를 지정하는 위치를 나타냅니다.

이를 사용하면, 다른 경로에 대한 서로 다른 하위 컴포넌트를 조건부로 렌더링할 수 있습니다. 

<Outlet /> 컴포넌트가 배치된 곳에서 현재 경로와 일치하는 자식 라우트 컴포넌트가 렌더링됩니다.

사용 예시

import { BrowserRouter as Router, Route, Routes, Outlet } from 'react-router-dom';

function App() {
  return (
    <Router>
      <Routes>
        <Route path="/" element={<Layout />}>
          <Route index element={<Home />} />
          <Route path="about" element={<About />} />
        </Route>
      </Routes>
    </Router>
  );
}

function Layout() {
  return (
    <div>
      <nav>
        {/* ... 네비게이션 링크 ... */}
      </nav>
      <main>
        <Outlet />
      </main>
    </div>
  );
}

function Home() {
  return <h1>Home Page</h1>;
}

function About() {
  return <h1>About Page</h1>;
}

위의 예시에서 <Layout /> 컴포넌트는 상위 라우트 컴포넌트로서, <Outlet />을 포함하고 있습니다. 

이 <Outlet />은 / 경로에서는 <Home /> 컴포넌트를 렌더링하고, /about 경로에서는 <About /> 컴포넌트를 렌더링합니다.

이런 방식으로 <Outlet />을 사용하면 중첩된 라우팅을 구현하고, 

여러 페이지 또는 섹션에서 공통의 레이아웃 구성 요소를 재사용할 수 있습니다.

 

 

'React' 카테고리의 다른 글

[React - 13] useSearchParams  (0) 2023.08.24
[React - 12] useOutletContext  (0) 2023.08.24
[React - 10] useParams  (0) 2023.08.23
[React - 9] useNavigate  (0) 2023.08.23
[React - 8] 합성 이벤트(Synthetic Event)  (0) 2023.08.23