본문 바로가기
  • 살짝 구운 김 유나
Web/React

[React] - Router 1

by yunae 2022. 12. 13.

react-router-dom 설치

$ npm install react-router-dom@6

setting

// index.js

import { BrowserRouter } from "react-router-dom";

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
      <BrowserRouter>
        <App />
      </BrowserRouter>
  </React.StrictMode>
);

 

 

 

라우터로 페이지 나누기

// App.js

import { Routes, Route, Link } from 'react-router-dom'

function App(){
  return (
    (...생략)
    <Routes>
      <Route path="/url경로" element={ HTML 코드 } />
      <Route path="/" element={ <div>main</div> } />
      <Route path="/detail" element={ <div>detail</div> } />
      <Route path="/about" element={ <div>about</div> } />
    </Routes>
  )
}

 

 

(맛없는) 페이지 이동 버튼

<Link to="/">Home</Link>
<Link to="/detail">Detail</Link>

 

 

(맛있는) 페이지 이동 기능 - useNavigate()

import { ...생략 , useNavigate } from 'react-router-dom'
  • 변수 생성하고 클릭이벤트에 함수 붙여놓기
function App(){
  let navigate = useNavigate()
  
  return (
    (...생략)
    <button onClick={()=>{ navigate('/detail') }}>Detail</button>
  )
}

 

[참고]

함수의 인자로 url 경로 대신 -1 을 넣으면 => 이전 페이지로 가기

함수의 인자로 url 경로 대신 1 을 넣으면 => 다음 페이지로 가기

 

 

 

 

404 페이지 처리

  • 맨 밑에 만들어 두어야 함 (* 때문에)
<Route path="*" element={ <div>없는페이지임</div> } />

 

 

 

Nested routes - Outlet

  • Outlet은 nested routes안의 요소들을 어디에 보여줄지 표기하는 곳
  • 동적인 UI를 만드는 방법 중 하나
<Route path="/about" element={ <About/> } >  
  <Route path="member" element={ <div>member</div> } />
  <Route path="location" element={ <div>location</div> } />
</Route>
function About(){
  return (
    <div>
      <h4>about페이지임</h4>
      <Outlet></Outlet>
    </div>
  )
}

 

 

 

 

드뎌 창맨이의 크핏 체험,, 7 라운드 하고 둘 다 몸져 누웠지만

너 내 크핏 동료가 되어라,,

이대로 2학기 플젝까지 부시자 화이팅~!

 

 

'Web > React' 카테고리의 다른 글

[React] ajax  (0) 2022.12.15
[React] Lifecycle  (0) 2022.12.15
[React] 블로그 제작 4 - input  (0) 2022.12.07
[React] 블로그 제작 3 - map, props  (0) 2022.12.07
[React] 블로그 제작 2 - 동적인 UI, 삼항연산자  (0) 2022.12.07

댓글