Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 반응형 페이지
- github
- node.js
- redux
- HTML
- TypeScript
- 그럼에도불구하고
- java
- CSS
- JS
- frontend
- 자바
- @media
- media query
- coding
- 코드업
- 자바문제풀이
- react-router-dom
- Servlet
- git
- JavaScript
- 코딩테스트
- node
- 그럼에도 불구하고
- react
- cleancode
- webpack
- 변수
- max-width
- 프론트엔드
Archives
- Today
- Total
그럼에도 불구하고
[Router] RouterProvider와 CreateBrowserRouter 본문
React에서 RouterProvider와 CreateBrowserRouter를 이용하여
다중 페이지를 구현하는 법에 대해 알아보겠습니다.
[ 기존 방식 ]
1 2 3 4 5 6 7 8 | import { BrowserRouter } from 'react-router-dom' const root = ReactDOM.createRoot(document.getElementById('root')) root.render( <BrowserRouter> // 최상단 root에서 BrowserRouter로 감싸기 <App /> </BrowserRouter> ) | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import { Route, Routes } from 'react-router-dom' const App = () => { return ( <Routes> <Route path='/' element={<Layout />} > // outlet을 이용한 중첩라우팅 <Route index element={<Main />} /> <Route path='/pageA' element={<PageA />} /> <Route path='/pageB' element={<PageB />} /> <Route path='/pageC' element={<PageC />} /> </Route> </Routes> ) } Colored by Color Scripter cs | cs |
[ React Router v6.4 이후 추가된 방식 ]
📌 RouterInfo.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | import Layout from '../Layout' import Main from '../pages/Main'; import PageA from '../pages/PageA'; import PageB from '../pages/PageB'; import PageC from '../pages/PageC'; export const RouterInfo = [ { path: "/", element: <Layout />, children: [ { index: true, element: <Main />, label: 'main' }, { path: "/pageA", element: <PageA />, label: 'A' }, { path: "/pageB", element: <PageB />, label: 'B' }, { path: "/pageC", element: <PageC />, label: 'C' }, ] }, ] | cs |
📌 App.js
1 2 3 4 5 6 7 8 9 10 11 12 13 | import { createBrowserRouter, RouterProvider, } from 'react-router-dom'; import { RouterInfo } from './util/router'; const RouterObject = createBrowserRouter(RouterInfo) //CreateBrowserRouter로 경로 지정 const root = ReactDOM.createRoot(document.getElementById('root')); root.render( <React.StrictMode> <RouterProvider router={RouterObject} /> </React.StrictMode> ); | cs |
기존의 방식처럼 BrowserRouter로 감싸지 않고 RouterProvider를 이용하여 구성요소들을 전달하고 활성화합니다.
'React > Router' 카테고리의 다른 글
[Router] action과 Form, useActionData 그리고 redirect (0) | 2023.06.12 |
---|---|
[Router] loader의 error 처리 with useRouterError & json (0) | 2023.06.10 |
[Router] loader와 useLoaderData (0) | 2023.06.10 |
[Router] useParams 사용하기 (0) | 2023.06.10 |
[Router] Link와 Outlet (0) | 2023.06.09 |
Comments