index.tsx -> App.tsx -> Main.tsx 순으로 참조하고, PageHeader.tsx 가 있을 때
<BrowserRouter> 태그 안에 <PageHeader> 와 <Routes>, <Route> 선언하여 사용
모든 페이지에 헤더가 나타난다. (장점일 수도, 단점일 수도)
createBrowserRouter
index.tsx -> App.tsx 를 참조할 때 App.tsx 에 <PageHeader> 없이 <RouterProvider router={router} ... /> 선언
createBrowserRouter 로 객체를 생성하여 export 한 router 가 / 경로부터, 다양한 경로에 해당하는 페이지 컴포넌트 바인딩 (ex. / -> Main.tsx)
Main.tsx -> PageHeader.tsx, Outlet
<Outlet> 이 선언되는 사용 방식은 헤더가 페이지에 나타나지 않는다. (정확한 규칙은 모르겠다. Outlet 이 import 되어 사용된 페이지에서 화면 전환 시에만 완전히 새로운 페이지 컴포넌트를 렌더링 하는 건지.. 확실한 건 라우팅되는 페이지가 Outlet 에 대치되어 헤더와 함께 렌더링되진 않는다.
React Router Dom
사용 방법
<BrowserRouter>
를 사용하던가createBrowserRouter
를 사용하던가BrowserRouter
<BrowserRouter>
태그 안에<PageHeader>
와<Routes>
,<Route>
선언하여 사용createBrowserRouter
<PageHeader>
없이<RouterProvider router={router} ... />
선언createBrowserRouter
로 객체를 생성하여 export 한router
가/
경로부터, 다양한 경로에 해당하는 페이지 컴포넌트 바인딩 (ex./
-> Main.tsx)<Outlet>
이 선언되는 사용 방식은 헤더가 페이지에 나타나지 않는다. (정확한 규칙은 모르겠다. Outlet 이 import 되어 사용된 페이지에서 화면 전환 시에만 완전히 새로운 페이지 컴포넌트를 렌더링 하는 건지.. 확실한 건 라우팅되는 페이지가 Outlet 에 대치되어 헤더와 함께 렌더링되진 않는다.<Outlet />
에 페이지 내용이 대체되는 구조. Router 의 children 구조를 활용해야 제대로 동작한다. "리액트 라우터(React Router)란? ( install 설치 / createBrowserRouter )," 를 참조해 도움 됨A. 참조