오늘은 React 라우터 설치 및 사용법에 대하여 포스팅하겠습니다.
컴포넌트를 생성할 때 너무 길어진 코드들을 App.js(메인)에 담을 경우 가독성이 떨어질 수 있습니다.
그럴경우 다른 js 파일에서 컴포넌트를 생성한 후 import 해와서 라우터에 담아서 보여줄 수 있습니다.
#일반적인 웹개발(html,js,css)과 다르게 React는 하나의 html 파일을 이용함#
1) 라이브러리 설치
터미널을 열고 npm install react-router-dom@6 실행(라이브러리 설치)
2) 셋팅
index.js 파일로 이동
<BrouserRouter>태그 안에 <App> 태그를 넣으면 셋팅완료
App.js
import { Route,Routes} from 'react-router-dom';
3) 사용
1. App.js 내에 갈아치우고 싶은 <div> 영역에 <Routes>태그 생성후 <Route>태그를 생성
<Routes>
<Route path="/detail" element={ <div>상세페이지</div> } />
<Route path="/about" element={ <div>어바웃페이지</div> } />
</Routes>
2. path에 메인url 뒤에 붙을 경로를 설정
path="/" -> / 하나는 메인페이지 임
3. element에 보여질html
ex)
4) 라우터에 파라미터 붙히기
파라미터로 값을 전달 할 경우 -> :파라미터 를 path에 경로 뒤에 붙히면 /detail로 접속했을 경우 , id라는 파라미터를
보내줍니다.
App.js
ex) 파라미터가 0일 경우 : 메인url/detail/0
<Detail1>컴포넌트가 생성
Detail.js
Detail.js 에서 App.js에서 보낸 파라미터를 받기 위해 useParams를 import 해줍니다.
파라미터를 이용하여 state에 배열의 시퀀스 값을 설정할 수 있겠습니다
ex) 1로 파라미터를 설정하여 보낼 경우 , state 배열의 [1] 번째 데이터 출력
* path에 * 표시를 넣으면 사용자가 메인url 뒤에 잘못쳐서 접속하는 경우에 대비할 수 있습니다.(404Error)
*
자주 바뀌는 html 부분에 유용하게 사용가능
ex) 페이지의 nav바를 제외하고 나머지 부분은 유동적으로 변경 되기 때문에 라우터로 url 마다 변경 가능하도록 설정
[navigate , Outlet 사용하기]
1) navigate
상단 import 부분에서 useNavigate, Outlet을 추가해줍니다.
useNavigate 함수를 변수에 담습니다.
navigate() 안에 / 하나를 넣으면 현재 페이지 , /뒤에 경로를 넣으면 그 경로로 이동시켜줍니다.
또한 정수를 넣으면 그 정수만큼 앞으로 페이지 이동 , 음수를 넣으면 그만큼 뒤로 페이지 이동
2) Nested routes, Outlet
<Route>안에 <Route>를 넣는 방법을 Nested routes라고 부릅니다.
/event path 안에 one ,two의 경로가 있습니다.
-> 메인url/event/one , 메인url/event/two
/event가 중복 ( <Evenet/> 컴포넌트가 중복됨 ) 되기 때문에 <Route> 안에 넣어서 생성합니다.
위의 Event 컴포넌트를 보면 오늘의 이벤트라는 텍스트가 있습니다.
메인url/event 로 접속하면 저 부분만 출력되고 , 메인url/event/one 으로 접속하면 <Event> 컴포넌트의 내용 오늘의 이벤트 밑에 Nested route 로 설정해둔 멘트가 출력됩니다.
유사한 서브페이지를 만들 때 유용하게 사용할 수 있겠습니다 !
'개발공부' 카테고리의 다른 글
[React] Ajax (0) | 2023.09.12 |
---|---|
[React]LifeCycle , useEffect (0) | 2023.08.31 |
[React] styled-components (0) | 2023.08.16 |
[React] 파일import , export (0) | 2023.08.14 |
[React] map함수, props (0) | 2023.08.10 |