티스토리 뷰
▶RouterProvider로 라우터들을 효과적으로 관리하자
이번 글에서는 react-router-dom에 있는 RouterProvider를 이용하여 라우터들을 좀 더 가독성 있고 편리하게 관리하는 방법에 대해 알아보려고 합니다.
RouterProvider v6.8.0
All router objects are passed to this component to render your app and enable the rest of the APIs. import { createBrowserRouter, RouterProvider, } from "react-router-dom"; const router = createBrowserRouter([ { path: "/", element: , children: [ { path: "d
reactrouter.com
🔎 RouterProvider
RouterProvider는 우리가 App.js에 <Routes> 하고 작성했던 많은 라우터들을 좀 더 가독성 있고 편리하게 관리할 수 있게 해주는데요.
아래와 같은 형태가 익숙할 것입니다.
<BrowserRouter>
<Routes>
<Route path="/" element={<HomePage />} />
<Route path="/todo" element={<TodoPage />} />
</Routes>
</BrowserRouter>
해당 코드를 바탕으로 RouterProvider를 적용하는 방법은 다음과 같습니다.
📌 RouterProvider 기본 사용하기
우선 관리하기 편하도록 src 폴더 안에 routes라고 폴더를 하나 만들어 줍니다.
이제 파일을 생성해서 router와 관련된 코드를 작성해주면 됩니다.
📄 src/routes/routing.js 파일
import { createBrowserRouter } from 'react-router-dom';
import HomePage from '../pages/Home';
import TodoPage from '../pages/Todo';
const router = createBrowserRouter([
{
path: '/',
element: <HomePage />,
},
{
path: 'todo',
element: <TodoPage />,
},
]);
export default router;
위 코드를 보시면,
createBrowserRouter를 통해 리스트 안에 객체 형태로 라우터들을 관리하는데요.
createBrowserRouter v6.8.0
createBrowserRouter This is the recommended router for all React Router web projects. It uses the DOM History API to update the URL and manage the history stack. It also enables the v6.4 data APIs like loaders, actions, fetchers and more. import * as React
reactrouter.com
path에는 라우터 경로, element에는 컴포넌트를 작성해 줍니다.
이제 다시 App.js로 돌아와서 코드를 봅시다.
📄 src/App.js 파일
import { RouterProvider } from 'react-router-dom';
import router from './routes/routing';
function App() {
return(
<RouterProvider router={router} />
)
}
export default App;
RouterProvider에게 우리가 미리 작성두었던 router를 import하여 전달해주면 끝입니다.
'프론트엔드 > React' 카테고리의 다른 글
[React] 프로젝트 기본 경로 설정 - 길어지는 상대경로를 간단하게 (0) | 2023.02.06 |
---|---|
[React] styled-components에서 속성값으로 스타일링 하기 (0) | 2023.02.06 |
[React] styled-components로 React 컴포넌트를 스타일링하자 (0) | 2023.02.05 |
[React] 이미지 파일 업로드 기능 구현 - 아이콘 클릭으로 업로드하고 화면에 띄우자 (0) | 2023.01.30 |
[React] 리액트 useRef 에 대해 알아보자 (2) | 2023.01.27 |
- Total
- Today
- Yesterday
- 자바스크립트 기초
- 파이썬
- 프로젝트 회고
- react
- react-query
- Python
- 프론트엔드 기초
- frontend
- CSS
- 리액트 훅
- 프론트엔드
- 스타일 컴포넌트 styled-components
- 머신러닝
- 자바
- 인프런
- 디프만
- styled-components
- HTML
- 프론트엔드 공부
- 리액트
- 자바스크립트
- 딥러닝
- TypeScript
- 타입스크립트
- testing
- jest
- 데이터분석
- JSP
- next.js
- rtl
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |